每次新建一个服务器,需要使用ssh远程连接的服务器的时候我就会回忆起每次恶心的配置ssh公私钥免密登录过程。近来认真一看网上的文章,我发现大部分教程对于mac用户是有问题的,那就是少了一步ssh-add。本文给出mac设置公私钥免密登录的正确步骤。
步骤
1) 检查是否已存在公私钥对
在mac上打开terminal,更改目录到~/.ssh目录,ls查看所有公私钥文件。拥有.pub结尾的文件是公钥文件,无.pub的是私钥文件。
2) 生成公私钥对(可选步骤)
这步适用于上一步ls观察之后当前文件夹不存在公私钥对的情况。
ssh-keygen
# 根据交互,输入你想要的名字(默认id_rsa)
# 然后是passphrase,设置为空即可。这样就生成了一对公私钥
ls
# 这时候当前目录下会多了一对公私钥对。
3) 上传公钥到服务器
这一步从本地将公钥文件上传到服务器指定目录。
ssh-copy-id -i [公钥文件] user@host
# user是你的ssh的用户,host是服务器地址,这时候还要输入密码。
# 例子:ssh-copy-id -i id_ed25519.pub root@192.168.6.13
4) ssh-add(mac系统的关键点)
一般别的系统到第三步就可以免密登录了,但是mac并不这样,还要调用ssh-add。
注:我本地mac系统设置后,没设置步骤4,也可免密登录,系统版本号:10.13.6 (17G14042)
ssh-add -K [你的私钥文件,就是那个不加.pub结尾的文件]
# 例如,ssh-add -K id_ed25519
按照这四个步骤执行,就可以免秘登录远程Linux服务器了。注意以上所有命令都是在本地机器执行。第三步用到了上传工具ssh-copy-id,这个工具直接将公钥上传到了服务器,所以简化了使用ssh连接服务器,再在服务器上注册公钥这个步骤。
版权声明:本文为qq_17376623原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。