转载请出自出处:http://eksliang.iteye.com/blog/2187265
一、原理
我们使用ssh-keygen在ServerA上生成私钥跟公钥,将生成的公钥拷贝到远程机器ServerB上后,就可以使用ssh命令无需密码登录到另外一台机器ServerB上。
生成公钥与私钥有两种加密方式,第一种是rsa(默认),还有一种是dsa,使用时两种方式随便选一种即可
- /usr/bin/ssh-keygen -t [rsa | dsa]
- 如果直接执行ssh-keygen,那么默认采用rsa生成公钥跟私钥
二、操作步骤
互信的原理了解了,我们可以把配置ssh互信的步骤进行有效的分割。
- 在要配置互信的机器(web-15和web-211)上生成各自经过认证的key文件。
- 将所有的key文件汇总到一个总的认证文件中。
- 将总的认证文件分发到想要进行互信的机器(web-211,web-15)
- 互信的验证
例如有如下两台机器:
主机 | 用户 |
192.168.27.211 | web211 |
192.168.27.15 | web15 |
第一步:登录192.168.27.211上面切换到web211用户
- [web211@master01 ~]$ /usr/bin/ssh-keygen -t rsa
按三次回车,在~/.ssh/目录下面便会生成如下id_rsa(私钥) id_rsa.pub(公钥)这两个文件
第二步:登录192.168.27.15上面切换到web15用户
- [web15@Node03 ~]$ /usr/bin/ssh-keygen -t rsa
- [web15@Node03 ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
第三步:在192.168.27.15上面汇总id_rsa.pub到authorized_keys文件中
- [web15@Node03 ~]$ ssh web211@192.168.27.211 cat /home/web211/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
第四步:将192.168.27.15上面的authorized_keys文件分发到192.168.27.211上面
- [web15@Node03 .ssh]$ scp ~/.ssh/authorized_keys web211@192.168.27.211:~/.ssh/authorized_keys
第五步:修改authorized_keys文件的权限,只有当前互信用户可读写,否则通不过SSH的安全检查
15跟211都得执行:这步搞得我蛋疼了许久,这也是我做笔记的原因。
- chmod 600 ~/.ssh/authorized_keys
到此为止,互信配置完毕,检测一下是否成功。
- [web15@Node03 .ssh]$ ssh web211@192.168.27.211
- [web211@master01 ~]$ --这里变成了web211了,说明免登录进入了92.168.27.211
如果还有问题参考这篇文章:https://blog.csdn.net/huangjin0507/article/details/85264400