最近在学习hadoop,在单机搭建伪分布模式的时候设置免密码登录总是失败,对照书上和网上的教程研究了好久也没解决。
最终在某dn网站上发现的一位大神留下的经验解决了我的问题。
之前大多数教程都忽略了两个点,第一个点是在按部就班将公钥添加至authorized_keys文件中前忘记将authrized_keys的权限改为600(仅拥有者可读写)及将.ssh文件夹的权限改为700(仅拥有者可读写执行),这是导致登录时仍需输入密码的第一个原因。
第二个则是可能随着版本的不同,ssh的默认配置也发生了变化,我所下载的ssh的默认配置中是不允许免密码登陆的,因此需要修改/etc/ssh/sshd_config的配置文件。这两个是出现免密码登录失败的主要原因,解决方式如下(只是已经验证可用的解决方法之一):
1.在生成密钥时选择生成RSA密钥,文件名跳过则默认为id_rsa。
ssh-keygen -t rsa
2.检查ssh的配置文件是否允许免密码登录。
vim /etc/ssh/sshd_config
检查一下这些语句是否被注释掉,如果被注释掉则取消注释(如果没有就手动添加)
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication yes
PermitEmptyPasswords yes
3.在使用cat或scp命令前修改.ssh和authorized_keys的权限
sudo chmod 700 ~/.ssh
sudo chmod 600 ~/.ssh/authrized_keys
除此以外则是正常的按教程走即可,此方法已亲测可用。
参考书目 《Hadoop实战》(第二版)陆嘉恒
参考资料 https://blog.csdn.net/baidu_34660375/article/details/81285160
https://blog.csdn.net/u013197629/article/details/73608613
网友评论