在搭建Linux集群服务时,master服务器需要启动slave服务器的服务,如集群中的Slave服务器过多时,手动启动耗时耗力。如使用免密登录,master服务器就能通过程序执行启动脚本,帮我们将slave服务器的应用启动。而这一切是建立在ssh服务的免密码登录之上。所以要学习集群部署,就必须了解linux的免密码登录。
SSH无密码原理简介
1在Master上生成一个密钥对,包括一个公钥和一个私钥,并将公钥复制到所有的slave上。
2当master通过SSH连接slave时,slave生成一个随机数并用master的公钥对随机数进行加密,然后发送给master。
3 master收到加密数之后用私钥解密,并将解密数回传给slave,slave确认解密数无误之后就允许master无密码进行连接。
配置具体步骤
在root用户登陆情况下执行
1执行命令
ssh-keygen(一路回车)
cd .ssh/
ls -l
2把id_rsa.pub追加到授权的key里面并修改权限。执行命令:
cat id_rsa.pub >> authorized_keys
chmod 600 authorized_keys
3确保 cat /etc/ssh/sshd_config 中存在如下内容
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
如需修改,则在修改后执行重启SSH服务命令使其生效:
service sshd restart
4将公钥复制到所有的slave机器上:
scp ~/.ssh/id_rsa.pub [slave_IP]: ~/
然后输入yes,最后输入slave机器的密码
5在 slave 机器上创建.ssh文件夹并赋予权限:
mkdir ~/.ssh
chmod 700 ~/.ssh
6追加到授权文件 authorized_keys 执行命令:
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
7重复第3步
8验证命令:
在master机器上执行ssh [slave_IP]发现主机名由master_name变成slave_name即成功,最后删除id_rsa.pub文件
rm -r id_rsa.pub
领取专属 10元无门槛券
私享最新 技术干货