一、服务器环境
最近在学习flink,涉及到集群中master服务器需要启动worker服务器,涉及到ssh的免密登录,记录一下过程,模拟了三台服务器, 过程为对每个节点,生成密钥对,然后将生成的所有公钥都追加 authorized_keys 文件中,再将authorized_keys文件放到每个节点 ~/.ssh/ 下
服务地址 | 用户名 | 角色 |
192.168.0.201 | master | master |
192.168.0.202 | worker1 | worker/slave |
192.168.0.203 | worker2 | worker/slave |
二、各个节点生成密匙对
2.1 每个节点生成密匙对
# 生成密钥对
ssh-keygen -t rsa -P ''
# 将 id_rsa.pub 追加到授权的key中
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
2.2 每个节点修改配置文件 /etc/ssh/sshd_config,修改内容如下:
vi /etc/ssh/sshd_config
sshd_config中插入一下代码
RSAAuthentication yes # 启用 RSA 认证
PubkeyAuthentication yes # 启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径
三、追加公匙
具体流程:
3.1 master服务器操作
复制 authorized_keys 到 worker1,会提示输入worker1的密码
scp ~/.ssh/authorized_keys @worker1:~/
3.2 worker1服务器操作
追加master的公钥到worker1的authorized_keys
chmod 700 ~/.ssh
cat ~/authorized_keys >> ~/.ssh/authorized_keys
rm ~/authorized_keys
此时authorized_keys包含master和worker1的公钥,将该authorized_keys复制到worker2,追加worker2的公钥
scp ~/.ssh/authorized_keys worker2:~/
3.3 worker2服务器操作
cat ~/authorized_keys >> ~/.ssh/authorized_keys
rm ~/authorized_keys
注:若果还有节点,一次类推,一直到最后一个节点,最后节点上的authorized_keys就拥有所有节点的公钥,然后再把该authorized_keys传到其他所有节点对应位置
在最后的节点进行一下操作,此次演示的最后节点为worker2
scp ~/.ssh/authorized_keys worker1:~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys master:~/.ssh/authorized_keys
3.4 最后在每个节点修改权限
chmod 600 ~/.ssh/authorized_keys
四、在每个节点进行测试登录
ssh ip