SSH免密码登录

#######################################################################
SSH无密码登陆即"公私钥"认证方式:首先在客户端上创建一对公私钥(公钥文件:~/.ssh/id_rsa.pub;私钥文件:~/.ssh/id_rsa)。然后把公钥放到服务器上(~/.ssh/authorized_keys),自己保留好私钥.在使用ssh登录时,ssh程序会发送私钥去和服务器上的公钥做匹配.如果匹配成功就可以登录了。
#######################################################################

1.确定系统已经安装了SSH:
rpm –qa | grep openssh
rpm –qa | grep rsync
如果没有安装则使用yum安装:
yum install ssh -->安装SSH协议
yum install rsync -->rsync是一个远程数据同步工具,可通过LAN/WAN快速同步多台
service sshd restart -->启动服务

2.修改SSH配置文件以允许免密码登陆(使用root身份):
vim /etc/ssh/sshd_config -->去掉下图中三行的注释
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
service sshd restart --重启服务

3.生成密钥对(针对当前用户):
ssh-keygen –t rsa –P ''  -->直接回车生成的密钥对:id_rsa和id_rsa.pub,默认存储在"/home/hadoop/.ssh"目录下

4.修改权限
chmod 700 ~/.ssh

5.实现对自身的免密码登陆:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys (把自己的公钥添加到自己的被授权Key中,表示:当自己作为客户端和服务器实现自连接时免密码)
chmod 600 ~/.ssh/authorized_keys

*单点客户机和服务器的免密码登陆即如上所述,如果集群中的机器需要两两之间实现免密码登陆(如Hadoop集群),原理相同,每台机器实行前四个步骤之后,再把自己的公钥添加到集群中所有机器的authorized_keys文件中即可

*还有个注意点就是,即便是配置了SSH免登录,在第一次连接的时候依然会需要密码,可以通过.ssh/known_hosts文件来查看已经被本机识别过的host目标(所以比如在做hadoop集群的时候,将所有机器的公钥都放置在Master机的临时文件中,然后通过Master执行scp命令将该临时文件复制到包括自身在内的集群的所有机器.ssh/authorized_keys,这样顺带就把所有的host都添加到了Master机.ssh/known_hosts文件中,此时,所有Slaves和Master之间已经可以免密码登陆,但是Slaves之间的第一次访问还是需要密码,因此,我们再把Master中的known_hosts文件复制到集群所有机器中,至此,集群中的所有机器之间完成真正的两两之间SSH免登陆)

 

 

你可能感兴趣的:(HADOOP集群,ssh免密码登录)