所谓”公钥登录”,原理很简单,就是用户将自己的公钥储存在远程主机上。登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来。远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不再要求密码。

要实现公钥登陆的前提是需要用户端需要先生成公/私钥对,正常情况下都是有的,目录为:用户目录下的 .ssh 文件夹,私钥没有后缀,公钥后缀为 .pub。

img

如果没有公私密钥的话可以使用 ssh-keygen 进行生成.

复制代码

1
2
3
ssh-keygen  -f test // -f 制定公司钥名称,回车进入下一步
Enter passphrase (empty for no passphrase): // 这里是密钥口令,如果担心私钥安全可以设置一下
Enter same passphrase again: // 确认密钥口令,回车后完成生成

服务器导入公钥

命令行导入

1
3ssh-copy-id -i ~/.ssh/test.pub user@host

手动导入

通过账号密码登陆服务器,将公钥复制到 ~/.ssh 目录下,执行下方命令:

1
cat RemotePPK.pub >> authorized_keys

xshell 使用公钥登陆演示

输入用户名

img

选择公钥登陆

image.png

导入密钥

image.png

img

img

选择导入好的密钥点 Ok

img

img

点击OK 完成登陆