我们使用ssh-keygen在ServerA上生成私钥跟公钥,将生成的公钥拷贝到远程机器ServerB上后,就可以使用ssh命令无需密码登录到另外一台机器ServerB上。
生成公钥与私钥有两种加密方式,第一种是rsa(默认),还有一种是dsa,使用时两种方式随便选一种即可
/usr/bin/ssh-keygen -t [rsa | dsa]
如果直接执行ssh-keygen,那么默认采用rsa生成公钥跟私钥
二、操作步骤
互信的原理了解了,我们可以把配置ssh互信的步骤进行有效的分割。
1.在要配置互信的机器(web-15和web-211)上生成各自经过认证的key文件。
2.将所有的key文件汇总到一个总的认证文件中。
3.将总的认证文件分发到想要进行互信的机器(web-211,web-15)
4.互信的验证
例如有如下两台机器:
主机 用户192.168.27.211 web211
192.168.27.15 web15
第一步:登录192.168.27.211上面切换到web211用户
1.[web211@master01 ~]$ /usr/bin/ssh-keygen -t rsa
按三次回车,在~/.ssh/目录下面便会生成如下id_rsa(私钥) id_rsa.pub(公钥)这两个文件
第二步:登录192.168.27.15上面切换到web15用户
1.[web15@Node03 ~]$ /usr/bin/ssh-keygen -t rsa
2.[web15@Node03 ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
第三步:在192.168.27.15上面汇总id_rsa.pub到authorized_keys文件中
1.[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上面
1.[web15@Node03 .ssh]$ scp ~/.ssh/authorized_keys web211@192.168.27.211:~/.ssh/authorized_keys
第五步:修改authorized_keys文件的权限,只有当前互信用户可读写,否则通不过SSH的安全检查
15跟211都得执行:这步搞得我蛋疼了许久,这也是我做笔记的原因。
1.chmod 600 ~/.ssh/authorized_keys
到此为止,互信配置完毕,检测一下是否成功。
1.[web15@Node03 .ssh]$ ssh web211@192.168.27.211
2.[web211@master01 ~]$ --这里变成了web211了,说明免登录进入了92.168.27.211
下面关于SSH相关的文章您也可能喜欢,不妨参考下:
Ubuntu 下配置 SSH服务全过程及问题解决
Ubuntu 14.04 下安装Samba 及SSH 服务端的方法
开启SSH服务让Android手机远程访问 Ubuntu 14.04