无密码登录原理
Master作为客户端,要实现无密码公钥认证,连接到服务器Salve上时,需要在Master上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到所有的Slave上。当Master通过SSH连接Salve时,Salve就会生成一个随机数并用Master的公钥对随机数进行加密,并发送给Master。Master收到加密数之后再用私钥解密,并将解密数回传给Slave,Slave确认解密数无误之后就允许Master进行连接了。这就是一个公钥认证过程,其间不需要用户手工输入密码。重要过程是将客户端Master复制到Slave上。
Master需要进行的操作
(1) Master上执行命令生成密码对
ssh-keygen –t rsa –P ''
(2)在Master节点上做如下配置,把id_rsa.pub追加到授权的key里面去。
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
(3)下面还需要做两件事
1:修改authorized_keys权限
chmod 600 ~/.ssh/authorized_keys
2:root设置"/etc/ssh/sshd_config"
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
(4)将文件id_rsd.pub发送到slave上
scp ~/.ssh/id_rsa.pub hadoop@slave?:~/
Slave上需要进行的操作
chmod 700 home/hadoop/.ssh
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys