Linux 如何设置 SSH 通过密钥方式登录
为什么要使用密钥方式登陆?
我们经常使用 PuTTY 等 SSH 客户端工具来远程管理维护 Linux 服务器。为了安全,我们通常会修改 SSH 的 22 服务端口,或者禁止 root 账户登录。但是,普通密码登录的方式始终会存在安全风险,很容易被破解,我们通过设置密钥的方式登录 SSH 可以大大提高计算机的安全性能,以便于更好的维护管理。
使用密钥方式登录的原理
原理:利用密钥生成器制作一对密钥,即:公钥和私钥。将公钥添加到服务器的某个账户上,然后在客户端上利用私钥认证并登录。如此一来,没有私钥的话,任何人都无法通过 SSH 破解你的密码来远程登录到计算机。此外,如果将公钥复制到其他账户或者主机上,利用对应的私钥也可以登录。
如何设置 SSH 通过密钥方式登录
现在我们来详细的讲解一下如何在 Linux 上制作密钥对,如何将公钥添加给账户,再通过设置 SSH 选项,从而最终实现客户端通过密钥方式登录。
1、制作密钥对
本文以 Ubuntu 22.04 系统为例,首先制作密钥对。你打算开启哪一个账户使用密钥方式登陆,就先用这个账户通过密码的方式登陆到系统上进行设置,这里以 root 账户为例,打开终端执行以下命令:
ssh-keygen -t rsa
2、在系统上安装公钥
分别输入以下命令,安装公钥:
cd /root/.ssh
cat id_rsa.pub >> authorized_keys
3、设置文件和文件夹的权限
chmod 600 authorized_keys
chmod 700 ~/.ssh
4、开启密钥方式登录的功能
编辑 sshd_config 文件:
sudo vi /etc/ssh/sshd_config
复制下面两行代码到最下面:
RSAAuthentication yes
PubkeyAuthentication yes
开启 root 用户 SSH 登录:
找到:#PermitRootLogin no
改为:PermitRootLogin yes
最后,重启 SSH 服务:
service sshd restart
5、将私钥下载到客户端,然后转换为 PuTTY 能使用的格式
使用 WinSCP 工具将私钥文件 id_rsa 下载到客户端机器上(.ssh 是隐藏目录,按 Ctrl + Alt + H 组合键显示)
然后打开 PuTTYGen,单击 Actions 中的 Load 按钮:
文件名这里选择 All Files (*.*) ,然后载入下载的 id_rsa 文件:
载入成功后,PuTTYGen 会显示密钥相关的信息。在 Key comment 中键入对密钥的说明信息,然后单击 Save private key 按钮即可将私钥文件保存为 PuTTY 能使用的 ppk 格式。
当你使用 PuTTY 登录时,选择密钥方式登陆,导入你刚才转换的 ppk 私钥文件,然后就可以直接登录了。
等设置完毕,并以密钥方式登录成功后,开启禁用密码登录:
编辑 sshd_config 文件:
sudo vi /etc/ssh/sshd_config
按照下面修改:
找到:#PasswordAuthentication yes
改为:PasswordAuthentication no
最后,再次重启 SSH 服务:
service sshd restart
发表评论