ssh 免密码登录

ssh 无密码登录要使用公钥与私钥。linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS为例。

有机器hadoop1(192.168.1.191),hadoop2(192.168.1.192)。现想A通过ssh免密码登录到B。

我是这样做的,现在机器A上做免密码登录,即在Hadoop1上能够免密码登录自己(ssh Hadoop1)

1.在hadoop1下生成公钥/私钥对,使用如下

[root@hadoop1 ~]$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa      //-t  加密类型 -f 密钥文件存放路径


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

2.把hadoop1机下的/root/.ssh/id_dsa.pub复制/root/.ssh/authorized_keys文件里,我用scp复制。

[root@hadoop1 ~]$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys 
id_dsa.pub                                    100%  223     0.2KB/s   00:00


3.然后免密码登录hadoop1

[root@hadoop1 ~]# ssh hadoop1

Last login: Fri Nov 13 22:53:23 2015 from hadoop1


4.如果要免密码登录hadoop2,可以将hadoop1下/root/.ssh拷贝到hadoop2的/root下面

[root@hadoop1 ~]#scp -r /root/.ssh  root@hadoop2:~/

 

5.然后就可以免密码登录到hadoop2了,第一次可能还是要输入密码

[root@hadoop1 ~]# ssh hadoop2

Last login: Fri Nov 13 22:53:23 2015 from hadoop2


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

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

 

你可能感兴趣的:(ssh 免密码登录)