当一个管理员要管理几十台几百台甚至上千台服务器的时候,麻烦就来了,每连一个服务器输入一次密码就能把人累死。
其实linux的公钥就可以实现免密码登陆
ssh的免密码设置如下:
(1) 在masters机器的hadoop用户下生成一个公用/私有密钥:ssh-keygen -t rsa -f ~/.ssh/id_rsa
注: ssh-keygen生成公用/私有密钥时会问Enter passphrase (empty for no passphrase): # 此处直接enter 跳过,下次才不会询问password
(2) 将生成的id_dsa.pub拷贝到所有要连接的远端机器上相同路径下:scp ~/.ssh/id_rsa.pub hadoop@[ip]:/home/hadoop/.ssh
(3) 将公钥加到集群中所有的机器用户目录下的.ssh/authorized_keys中去:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
(4) 使用ssh连接时,本机的private key(id_rsa) 与远端电脑的public key(authorized_keys) 做认证, 确认完成就可以直接登入, 不需输入帐号密码, 而且也比较安全.
注:如果一般user的目录下没有.ssh资料夹,手动建立即可, 不然用那个帐号ssh localhost 一次, 就会自动建立出来。