三台linux服务器相互ssh 无密码验证登陆

环境 三台服务器 
系统 RHEL5.3 
ssh版本 openssh-server-4.3p2-29.el5

  
1 生成私钥id_rsa和公钥id_rsa.pub
[dbrg@dbrg-1:~]$ssh-keygen  -t  rsa
这个命令将为dbrg-1上的用户dbrg生成其密钥对,询问其保存路径时直接回车采用默认路径,当提示要为生成的密钥输入passphrase的时候,直接回车,也就是将其设定为空密码。生成的密钥对id_rsa,id_rsa.pub,默认存储在/home/dbrg/.ssh目录下。然后将id_rsa.pub的内容复制到每个机器(也包括本机)的/home/dbrg/.ssh/authorized_keys文件中,如果机器上已经有authorized_keys这个文件了,就在文件末尾加上id_rsa.pub中的内容,如果没有authorized_keys这个文件,直接cp或者scp就好了,下面的操作假设各个机器上都没有authorized_keys文件。

2 ssh服务端设置authorized_keys文件存储公钥信息
对于dbrg-1
[dbrg@dbrg-1:.ssh]$cp id_rsa.pub authorized_keys 
对于dbrg-2(dbrg-3同dbrg-2的方法) 
[dbrg@dbrg-2:~]$mkdir .ssh 
[dbrg@dbrg-1:.ssh]$scp authorized_keys dbrg-2:/home/dbrg/.ssh/
此处的scp就是通过ssh进行远程copy,此处需要输入远程主机的密码,即dbrg-2机器上dbrg帐户的密码,当然,你也可以用其他方法将authorized_keys文件拷贝到其他机器上
[dbrg@dbrg-2:.ssh]$chmod 644 authorized_keys
这一步非常关键,必须保证authorized_keys只对其所有者有读写权限,其他人不允许有写的权限,否则SSH是不会工作的。我就曾经在配置SSH的时候郁闷了好久。
[dbrg@dbrg-2:.ssh]ls -la 
drwx------ 2 dbrg dbrg . 
drwx------ 3 dbrg dbrg .. 
-rw-r--r-- 1 dbrg dbrg authorized_keys
注意每个机器上的.ssh目录的ls -la都应该和上面是一样的
接着,在三台机器上都需要对sshd服务进行配置(其实是可以不用配置的,完成了上面的那些操作了以后SSH就已经可以工作了),在三台机器上修改文件
/etc/ssh/sshd_config 
#去除密码认证 
PasswordAuthentication    no 
AuthorizedKeyFile     .ssh/authorized_keys
至此各个机器上的SSH配置已经完成,可以测试一下了,比如dbrg-1向dbrg-2发起ssh连接
 

3 测试
[dbrg@dbrg-1:~]$ssh    dbrg-2
如果ssh配置好了,就会出现以下提示信息
The authenticity of host [dbrg-2] can't be established.    
Key fingerprint is 1024 5f:a0:0b:65:d3:82:df:ab:44:62:6d:98:9c:fe:e9:52.    
Are you sure you want to continue connecting (yes/no)?
OpenSSH告诉你它不知道这台主机,但是你不用担心这个问题,因为你是第一次登录这台主机。键入“yes”。这将把这台主机的“识别标记”加到“~/.ssh/know_hosts”文件中。第二次访问这台主机的时候就不会再显示这条提示信息了。
然后你会发现不需要输入密码就可以建立ssh连接了,恭喜你,配置成功了
[dbrg@dbrg-1:~]$ssh    dbrg-3
[dbrg@dbrg-1:~]$ssh    dbrg-1
[dbrg@dbrg-2:~]$ssh    dbrg-2
[dbrg@dbrg-2:~]$ssh    dbrg-3
[dbrg@dbrg-2:~]$ssh    dbrg-1

等等 三台服务器都可以直接ssh都对端


本文转自holy2009 51CTO博客,原文链接:http://blog.51cto.com/holy2010/364676


上一篇:搭建通过 ssh 访问的 Git 服务器


下一篇:OkHttp3源码解析(二)——拦截器链和缓存策略