从零开始构建集群前期准备之---SSH各服务器间无密码登陆

    集群中服务器数量较多时,各节点的密码不相同之间不停切换,需要牢记各节点密码并输入密码,就成了一件很痛苦的事了。本文讲的SSH各服务器间无密码登陆,就是解决这个问题的。

    本文,我们需要实现node1、node2、node3之间不需要输入密码直接通过:

           ssh node1或ssh 192.168.100.130直接登录


    各节点列表:

    node1 192.168.100.130

    node2 192.168.100.100

    node3 192.168.100.101    


实现过程:

    首先实现node1无密码登陆node2。

node1节点操作:

1、在node1机器生成公钥/私钥对

[root@node1 ~]# ssh-keygen -t rsa -P "

(注:-P表示密码,-P '' 就表示空密码,也可以不用-P参数,这样就要三车回车,用-P就一次回车。
它在/root下生成.ssh目录,.ssh下有id_rsa和id_rsa.pub。)

2.把node1机下的id_rsa.pub复制到node2机下,在node2机的.ssh/authorized_keys文件里,我用scp复制。

[root@node1 ~]# scp .ssh/id_rsa.pub [email protected]:/root

[email protected]'s password:

id_rsa.pub                                   100%  392     0.4KB/s   00:00 

由于还没有免密码登录的,所以要输入密码。

node2节点操作:

3.node2机把从node1机复制的id_rsa.pub添加到.ssh/authorzied_keys文件里。

[root@node2 ~]# cat id_rsa.pub >> .ssh/authorized_keys
[root@node2 ~]#  chmod 600 .ssh/authorized_keys

(注:authorized_keys的权限要是600


再添加机器,就是不停的重复第2步和第3步操作。


大功告成!!!


扩展:主机名登录

1、通过修改hosts文件可以实现通过主机名登录

[root@node1 ~]# vim /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6


192.168.100.130 node1

192.168.100.100 node2

192.168.100.101 node3

2、使用scp复制hosts文件到各各节点。

[root@node1 ~]# scp /etc/hosts [email protected]:/etc/

hosts                                        100%  226     0.2KB/s   00:00    

[root@node1 ~]# scp /etc/hosts [email protected]:/etc/

hosts                                        100%  226     0.2KB/s   00:00    

结果演示:

[root@node1 ~]# ssh node2

Last login: Tue Mar  3 17:42:18 2015 from node1

[root@node2 ~]# ssh node3

Last login: Thu Dec 18 17:14:29 2014 from 192.168.100.130

[root@node3 ~]#


总结:

        登录的机子可有私钥,被登录的机子要有登录机子的公钥。这个公钥/私钥对一般在私钥宿主机产生。上面是用rsa算法的公钥/私钥对,当然也可以用dsa(对应的文件是id_dsa,id_dsa.pub)

想让node1,node2机无密码互登录,那node2机以上面同样的方式配置即可。

你可能感兴趣的:(ssh,无密码登陆,构建集群)