今天收到一个需求,开通6台服务器,服务器之间做免密登录。

所有服务器的统一配置:1-3

1、修改hosts文件,把所有服务器的hostname命和ip地址对应写到/etc/hosts 里面。 10.1.1.1 ip-10-1-1-1 10.1.1.2 ip-10-1-1-2

2、修改/etc/ssh/sshd_conf #>vi /etc/ssh/sshd_config         找到以下内容,并去掉注释符”#“   RSAAuthentication yes   PubkeyAuthentication yes   AuthorizedKeysFile      .ssh/authorized_keys        重启ssh服务   #>service sshd restart

3、关闭selinux ,把SELINUX= 改成 disabled
#> cat /etc/selinux/config 

SELINUX=disabled SELINUXTYPE=targeted


秘钥文件处理: A(10.1.1.1)要免密登录B(10.1.1.2) 以下操作都要在想免密登录使用的用户下操作。 1.在A服务器操作: 生成秘钥文件并发公钥分发到被登录的服务器端: $> ssh-keygen -t rsa 一路敲回车,什么都不用输入 会生成两个秘钥文件 $> ll /home/dmadmin/.ssh/ authorized_keys -----------ssh服务会找的秘钥文件,里面存档的是锁文件, id_rsa -----------这是私钥文件(钥匙),A服务器需要此文件。 id_rsa.pub -----------这是公钥文件(锁),需要写到B服务器的authorized_keys里面。 $>cat ~/.ssh/id_rsa.pub >> /home/dmadmin/.ssh/authorized_keys $>chmod 400 /home/dmadmin/.ssh/authorized_keys $>ssh-copy-id -i .ssh/id_rsa.pub root@10.1.1.2 把锁文件传送到被登录的服务器里面。

2.在B服务器操作 登录到要被登录的服务器,修改秘钥文件的权限 $>chmod 400 /home/dmadmin/.ssh/authorized_keys

3.回到A服务器测试免密登录:可以连接计算机名也可以连接IP地址 A~$>ssh 10.1.1.2 A~$>ssh ip-10-1-1-2 此时不需要密码,A服务器可以直接登录到B服务器。

 ---------------------------------------------------------------------
 B服务器免密登录到A服务器
 1.因为当时A服务器已经把公钥文件放到自己的/home/dmadmin/.ssh/authorized_keys文件里面,只要把这把锁的要是拷贝到本地/home/dmadmin/.ssh/目录下即可。
 2.拷贝钥匙到B服务器/home/dmadmin/.ssh/
 在A服务器使用scp命令把私钥文件拷贝到B服务器里面。
 A~$>scp /home/dmadmin/.ssh/id_rsa root@10.1.1.2:/tmp/
 在B服务器使用mv命令把撕咬文件拷贝到/home/dmadmin/.ssh/下
 B~$>mv /tmp/ia_rsa /home/dmadmin/.ssh/
 
 3.B服务器免密登录A服务器:可以连接计算机名也可以连接IP地址
  B~$>ssh 10.1.1.1
	B~$>ssh ip-10-1-1-1