#ssh远程双向无密码登陆
需求:在192.168.10.100执行ssh 192.168.20.205不需要输入密码直接跳转到205机器
#在192.168.10.100执行命令,我这里使用root用户
> ssh-keygen -t rsa -P '' #直接回车回车,不输入任何内容(在192.168.10.100生成公钥和私钥放在/root/.ssh 目录下)
> ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.20.205 #把192.168.10.100的公钥复制到192.168.20.205,并追加到192.168.20.205服务器密钥信任列表(需要输入对应用户密码)
> ssh 192.168.20.205 #测试是不是可以不输入密码调到192.168.20.205服务器
#想在192.168.20.205免密码登陆192.168.10.100只需要把上述三个命令在192.168.20.205执行一次即可.
详细原理如下:
#配置10.100
1.在客户端生成公钥和私钥
ssh-keygen -t rsa -P ''#直接回车,不输入任何内容
cd /root/.ssh#生成的公钥和私钥位置
2.把生成的公钥追加到自己的信任列表,自己可以ssh localhost不需要输入密码
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
3.修改ssh配置文件让其支持远程rsa验证登陆
vim /etc/ssh/sshd_config
放开注释:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
4.重启sshd服务
service sshd restart
5.本机测试是否支持无密码连接
ssh localhost#第一次输入yes
ssh localhost#第二次直接登陆
6.把自己的公钥给服务器
scp ~/.ssh/id_rsa.pub root@192.168.20.205:~/
7.登陆服务器192.168.20.205,把公钥追加到自己信任列表
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
8.服务器端重启sshd
service sshd restart
9.这时10.100(提供公钥方)可以无密码登陆20.205(信任列表有10.100公钥).
###单向无密码认证完成###
#在205服务器按照上述步骤做一次即可.
0.一样的步骤
生成公钥私钥--->公钥追加到自己的信任列表--->修改配置文件(放开注释)--->重启sshd--->本机测试
1.复制服务端公钥
scp ~/.ssh/id_rsa.pub root@192.168.10.100:~/
2.进入客户端,把服务器公钥追加到客户端信任列表
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
3.服务端直接登陆客户端
ssh 192.168.10.100
###修改ssh端口###
vim /etc/ssh/sshd_config
查找port,放开注释,可以添加一行(支持多端口),也可以直接改掉22端口.
如果遇到此问题:
cd /root/.ssh/
vim known_hosts #删掉该主机对应的信任信息,因为之前配置过一次,但这一次重新生成了公私钥,而这边还是旧了,认证不了就报错.