SSH 免密码登陆

每次在终端使用SSH访问服务器都需要输入密码,非常麻烦,有没有办法不输密码也可以访问呢?答案是肯定的。


服务器IP:192.168.1.200   用户:server

客户端IP:192.168.1.100   用户:local

生成私钥公钥

首先,使用ssh-keygen来生成私钥和公钥

ssh-keygen -t rsa

这样会生成一对密钥,存放在local用户的~/.ssh目录下。

上传公钥

将公钥上传到server的用户目录下

local:

scp ~/.ssh/id_rsa.pub server@192.168.1.200:

写入公钥

将id_rsa.pub文件写入到~/.ssh/authorized_keys

server:

cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

检查.ssh目录必须是700,authorized_keys必须是644,并且拥有者是当前用户。


现在,使用 SSH、SFTP、SCP等功能,不用再输入密码了。


补充:使用ssh-copy-id上传并写入公私

上面的生成公钥后,执行2个步骤,先将公私拷贝到服务器,再从服务器上写入到authorized_keys。这里还有一个更简单的方法将后面2步合为1步完成。

使用ssh-copy-id命令,使用Mac的小伙伴如果发现命令不存在,可以先使用brew安装。

brew install ssh-copy-id

命令安装完成后,直接上传并写入公钥

ssh-copy-id -i ~/.ssh/id_rsa.pub server@192.168.1.200

完成后,看看是不是同样不需要密码就可以登陆啦?

如需转载,请注明出处: https://chadou.me/p/181

最新发布