redhat6.2下的ssh密钥免密码登录(原创)
这个是我自己写的,鼓励转载,请说明转载地址:http://www.cnblogs.com/nucdy/p/5664840.html
在进行hadoop的免密码的登录操作是,老是发生no route等错误,这个源于是查了一下午,原因是ssh免密码没有做好
下面我说一下我这个是如何做到免密码的问题
在master 的 hadoop用户下:
ssh-keygen -t rsa
连续敲3个回车,会出现一个带有框框的图画
自后:cd .ssh
cp id_rsa.pub authorized_keys
完成后,
切换到其他datanode 节点host6上
cat ~/.ssh/id_*.pub | ssh hadoop@host2 'cat >> .ssh/host6'
其中:host6是你起得文件名字
在切换到一个节点(host8)上,执行同样的命令
cat ~/.ssh/id_*.pub | ssh hadoop@host2 'cat >> .ssh/host6'
这样就讲host6和host8上的公钥给传到的了master(host2)上了,看结果
而后在maste上(我的是host2)执行:
cat host8 >>authorized_keys
cat host6 >>authorized_keys
这样将host6和host8的公钥追加给了authorized_keys
在其后,执行
ssh-copy-id -i .ssh/id_rsa.pub hadoop@host6
ssh-copy-id -i .ssh/id_rsa.pub hadoop@host8
这样就实现了host2、host6、host8的直接的免密码登录
注意:
A. 从客户机拷贝过来的 id_rsa.pub 在服务机上其实就是各临时文件,所以名字随便起,如果有多个客户机,那可以后面加序号区别,不过也不用这么麻烦,因为按照上面的命令操作完后就可以删掉它了。
B. authorized_keys 这个名字不能改,我试过了,服务机只认这个名字的文件,所以加入有10个客户机,你就得把这10个客户机的密钥文件都输入到这个文件里,所以这里必须用 >> ,而不能用 >
C.文件夹“.ssh”中的三个文件的权限,是有要求的,“自己之外的任何人对每个文件都没有写权限”。另外,“.ssh”文件夹是-rw-r--r--.权限。如果权限有问题,会造成SSH访问失败
注意:使用命令ssh时,一定要观察主机名的变化。很多同学在操作ssh时,由于大量的使用ssh登录退出,忘记自己目前在哪台机器了,执行了大量错误的操作。
另外,如果多次执行ssh,每次都要输入确认信息的话,说明配置失败了。可以删除文件夹“.ssh”,重新配置。也可以重启虚拟机再配置。只要严格按照上面的步骤操作,保证能够成功的。
如果还搞不定,给你个绝招” 删除/etc/udev/rules.d/70-persistent-net.rules文件,重启系统”。
配置出错,可以查看/var/log/secure日志文件,找原因。
希望对你开发环境搭建有帮助,我的就是按照上面完成的。