标签:
先说下事情的起因,手贱删掉了~/.ssh下的所有文件,包括authorized_keys,id_rsa,id_rsa.pub,以及known_hosts。其实,这四个文件本来就是没有的,id_rsa和id_rsa.pub是存储私钥和公钥的文件,通过命令生成。
ssh-keygen
删除了所有文件之后,再ssh Slave2(远程主机名)就提示以下消息:
The authenticity of host ‘111.222.333.444 (111.222.333.444)‘ can‘t be established. RSA key fingerprint is f3:cf:58:ae:71:0b:c8:04:6f:34:a3:b2:e4:1e:0c:8b. Are you sure you want to continue connecting (yes/no)?
回车确认之后,提示如下:
Host key verification failed
”主机密钥验证失败“。
解决方法如下,虽然不一定是最好的,但是确实是解决了我的问题。
在Master端输入如下命令:
ssh -o "StrictHostKeyChecking no" hadoop@Slave2
hadoop是Master端用户名,Slaver2是远程主机名。
然后就可以ssh Slave2密码登录Slave2了,执行以下命令首先将Master的公钥传输到Slave2端,然后将其插入到authorized_keys文件中(插入的时候创建了这个文件)
scp ~/.ssh/id_rsa.pub hadoop@Slave2:/home/hadoop/
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
然后ssh Slave2,结果提示如下信息,仍然需要使用密码登录Slave2:
Agent admitted failure to sign using the key.
解决方法就是在Master端执行如下命令:
ssh-add ~/.ssh/id_rsa
以上方法就解决了无密码登陆的问题。
参考:
http://superuser.com/questions/125324/how-can-i-avoid-sshs-host-verification-for-known-hosts
http://www.cnblogs.com/dlutxm/archive/2011/10/14/2212019.html
ssh的原理可参考以下博文:
http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html
标签:
原文地址:http://www.cnblogs.com/lz3018/p/5125653.html