1)在master主机上生成密码对
ssh-keygen –t rsa –P ''
确认一路回车,命令默认会在用户主目录下生成.ssh目录,你们有两
密钥对文件:id_rsa和id_rsa.pub
[master@hadoop ~]$ ll .ssh/
-rw-------. 1 master master 1675 Jun 3 00:28 id_rsa
-rw-r--r--. 1 master master 402 Jun 3 00:28 id_rsa.pub
接着在master节点上做如下配置,把id_rsa.pub追加到授权的key里面去。
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
本以为这么就可以搞定了的,发现输入命令ssh localhost还是要密码。
捣鼓了半天,终于还是被我找到了原因
找到服务器修改SSH配置文件"/etc/ssh/sshd_config",修改如下内容(去掉前面的注释)
RSAAuthentication yes # 启用 RSA 认证
PubkeyAuthentication yes # 启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径(和上面生成的文件同)
设置完之后记得
重启SSH服务
service sshd restart
重新验证ssh localhost,无密码登陆成功
配置远程登陆其他机器也是同一个原理,只需把本机生成的id_rsa.pub上传到其他服务器做同样操作即可。