最近在搭建hadoop集群、涉及到了ssh免密问题、这样启动时不需输入其它机器密码可以直接./start-all.sh 命令 一键启动集群、在设置免密登录时遇到了问题。
1、执行ssh-keygen -t rsa 生成公钥、秘钥文件 查看cd ~/.ssh文件夹下有时候不会生成authorized_keys文件
此时执行cat id_rsa.pub >> authorized_keys 将会生成此文件 并且将公钥拷贝进去
2、网上有些文章提倡将一台机器的 authorized_keys 文件复制到其它机器 并且将公钥也复制过去,但是我反复尝试还是不行,不能互相免密只能是单方面免密。
3、在此 我提倡每台机器都执行ssh-keygen -t rsa 生成公钥、秘钥文件
例如 我这里有三台机器 master slave1 slave2
将三台机器的id_rsa.put 公钥文件都复制到 master上的authorized_keys 中 ,然后再将该文件拷贝到slave1 和 salve2中
4、一般情况下应该就可以免密登录了
5、个人遇到了比较奇葩的问题、就是按照上面操作了还是需要密码登录通过查资料发现是权限问题
修改一下所属用户和权限即可
chown root: /root/.ssh
chown root: /root/.ssh/*
chmod 700 /root/.ssh
chmod 600 /root/.ssh/*
终于连接了 希望对大家有帮助!!!