版权属于: Postbird - There I am , in the world more exciting!
原文地址: http://www.ptbird.cn/linux-ssh-no-password.html
转载时必须以链接形式注明原始出处及本声明。
hadoop节点之间的通讯是通过ssh进行的,这一点在hadoop-deamon.sh start namenode的过程中就能看出来。
在slaves.sh中有
SSH默认都是需要密码的,开启免密钥登录会减少很多麻烦。
操作很简单,两步(三步)就可以完成。
1、首先在本地生成公钥和私钥。
ssh-keygen -t rsa
#后面都按回车跳过即可(三次)
# 运行结束后在 ~/.ssh/下生成两个新文件: id_rsa.pub和id_rsa
2、将公钥拷贝到远程主机
ssh-copy-id username@host
# username是用户名 host是主机的地址
#远程主机将用户的公钥保存在 ~/.ssh/authorized_keys文件中
3、如果发现. Agent admitted failure to sign using the key 这个错误,还要输入密码,是ssh本身的问题
可以使用命令:
ssh-add ~/.ssh/id_rsa 把私钥加进来即可
上述操作后即可完成。
我用本机SSH本机做例子
1、首先生成公钥私钥
2、拷贝到远程主机,实际上就是拷贝到本机上了。可以看到多了一个文件 authorized_keys
3、直接登陆发现了错误,然后我把自己的私钥加了进来,随后就可以连接。