配置SSH免密登陆
- 1.生成公私密钥对
- 1)检查是否已存在公私钥对
- 2)生成公私钥对
- 2.上传公钥到服务器
- 3.ssh-add(mac的坑点)
- 4.使用配置文件连接
博主是MAC用户,文章参考知乎
1.生成公私密钥对
1)检查是否已存在公私钥对
在mac上打开terminal。更改目录到~/.ssh目录。list当前目录可以看到所有公私钥文件。拥有.pub结尾的文件是公钥文件,无.pub的是私钥文件
# 更换目录到 ~/.ssh
cd ~/.ssh
# 查看当前目录公私钥文件
ls
2)生成公私钥对
这部适用于上一步list观察之后当前文件夹不存在公私钥对的情况
ssh-keygen
出现如下图所示,这时候请不要一直回车,输入相应的文件名称,因为不输入的话是默认生成id_rsa和id_rsa.pub两个文件
接下来是passphrase,直接回车设置为空即可。这样就生成了一对公私钥
2.上传公钥到服务器
ssh-copy-id -i [公钥文件] user@host
# user是你的ssh的用户,host是服务器地址,这时候还要输入密码。
# 例子:ssh-copy-id -i id_rsa.pub root@111.111.111.111
3.ssh-add(mac的坑点)
一般别的系统到第三步就可以免密登陆了,但是mac并不这样。还要调用ssh-add
ssh-add -K [你的私钥文件,就是那个不加.pub结尾的文件]
# 例如,ssh-add -K id_rsa
4.使用配置文件连接
截止到上面已经可以实现免密登陆了,虽然不用每次都输入密码,但还是要输入服务器的用户名和 IP 地址,还是挺麻烦的。
这时候可以给 IP 配置一个别名,进而简化连接操作。
# 同样在~/.ssh/目录下,添加一个配置文件
cd ~/.ssh/
vim config
# 可以设置多个
Host host0 # 远程主机别名
HostName 192.168.63.8 # 远程主机ip
User root # 你在远程主机的用户名
Port 22
IdentityFile ~/.ssh/id_ssh # 你的ssh秘钥文件
这样直接通过别名就可以访问了
ssh host0