1.首先确定一个前提,登陆主机均需要安装openssh-server和openssh-clients包。
2.实验环境
a主机是centos6.3 ,IP:10.10.50.81
b主机是redhat6.5 ,IP:10.10.50.109
确定要被远程登陆的主机上有相应的用户名,假设a主机上有用户oracle1(密码同用户名)b主机上有用户oracle2(密码同用户名)
3.实验步骤
a.此处先配置a无密码登陆b主机,再确定成功以后,以同样的方式使b主机可以远程登陆a主机即完成两台服务器之间无密码访问
b.首先需要在a主机上生成公钥和密钥文件,生成方法:
[oracle1]$ ssh-keygen -t rsa (注意:-t是指定加密类型,有rsa和dss两种,一般默认是rsa类型,可以直接输入ssh-keygen命令,后面一路回车,注意密钥的产生过程总会提示是否输入密码,最好不要输入,不然的话每次远程登陆虽然不要输入口令密码,但是需要输入密钥密码)
Generating public/private rsa key pair.
Enter file in which to save the key (/home/oracle/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/oracle/.ssh/id_rsa.
Your public key has been saved in /home/oracle/.ssh/id_rsa.pub.
The key fingerprint is:
65:5b:2d:15:d6:f5:c1:d0:ef:58:d7:2f:31:79:56:18 oracle@localhost.localdomain
The key's randomart image is:
+--[ RSA 2048]----+
| .E*o|
| +.o=|
| o o ..=|
| o o .+ B|
| S . Oo|</p><span style="white-space:pre"> </span>| o o|
| . |
| |
| |cc
+-----------------+
c.远程登陆到b主机,此时会提示是否接受主机口令文件,输入yes选择接收。文件会保存在a主机家目录下面的.ssh目录下,注意这个目录是隐藏文件,在该目录下是以known_hosts文件存储
[oracle1@localhost .ssh]$ ssh oracle2@10.10.50.109
The authenticity of host '10.10.50.109 (10.10.50.109)' can't be established.
RSA key fingerprint is a3:4a:cc:66:b7:de:a0:eb:ef:55:08:30:33:03:b7:6d.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.10.50.109' (RSA) to the list of known hosts.
oracle1@10.10.50.109's password:
Last login: Sat Apr 18 17:45:05 2015 from 10.10.50.109
d.在b主机oracle2的家目录下创建.ssh目录,并且权限只能设置为700,这样才能完成无密码访问,一定注意!!!!
e.在a主机家目录下面.ssh下面的公钥文件通过追加保存到b主机.ssh目录下面authorized_keys文件中,有这个文件就直接追加,没有的话则手动创建。
这样再断开连接,重新在a主机上使用$ ssh oracle2@10.10.50.109就可以无密码登陆了。
通过以上步骤完成了a主机无密码访问b主机,但是这个过程是单向的,所以如果要两个主机之间无密码互相访问,只要将以上过程反过来做就可以了。