1.使用 ssh-keygen 创建一个密钥对
服务器和本地都可以生成(此处在服务器上生成)
1 | [root@host ~]$ ssh-keygen -t rsa |
密钥锁码在使用私钥时必须输入,这样就可以保护私钥不被盗用。当然,也可以留空,实现无密码登录
2.服务器安装公钥
1 | [root@host ~]$ cd .ssh |
没有 authorized_keys
文件就自己创建一个
然后修改权限
1 | [root@host .ssh]$ chmod 600 authorized_keys |
3.设置 SSH,打开密钥登录功能
编辑 /etc/ssh/sshd_config
文件
RSA 认证
RSAAuthentication yes
开启公钥验证
PubkeyAuthentication yes
验证文件路径
AuthorizedKeysFile .ssh/authorized_keys
禁止密码认证
PasswordAuthentication no
最后重启 sshd
systemctl restart sshd
4.私钥下载
下载私钥到本地的 C:\Users\Username\.ssh
目录,并删除服务器的私钥
5.补充
非 root
用户也是类似的操作,不过要将公钥放进对应用户的 .ssh
目录(~/.ssh/
)。如果在本地生成密钥,则要在服务器自建 .ssh
目录