#######################################################################
SSH无密码登录即"公私钥"认证方式:首先在客户端上建立一对公私钥(公钥文件:~/.ssh/id_rsa.pub;私钥文件:~/.ssh/id_rsa)。而后把公钥放到服务器上(~/.ssh/authorized_keys),本身保留好私钥.当客户端使用ssh链接服务端时,服务端生成一个随机数并用客户端的公钥加密,并将结果发送给客户端,客户端对加密结果用私钥进行解密,将解密结果返回给服务端,服务端确认无误后,容许客户端链接。
#######################################################################vim
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 --重启服务ssh
3.生成密钥对(针对当前用户):
ssh-keygen –t rsa –P '' -->直接回车生成的密钥对:id_rsa和id_rsa.pub,默认存储在"~/.ssh"目录下工具
4.修改权限
chmod 700 ~/.sshoop
5.实现对自身的免密码登录:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys (把本身的公钥添加到本身的被受权Key中,表示:当本身做为客户端和服务器实现自链接时免密码)
chmod 600 ~/.ssh/authorized_keys加密
*单点客户机和服务器的免密码登录即如上所述,若是集群中的机器须要两两之间实现免密码登录(如Hadoop集群),原理相同,每台机器实行前四个步骤以后,再把本身的公钥添加到集群中全部机器的authorized_keys文件中便可rest
*还有个注意点就是,即使是配置了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