基于SSH免密登录集群配置
基于SSH免密登录集群配置
最近搭建Flink集群,为了方便需要配置集群基于SSH的免密登录访问;在配置过程中遇到一些坑点,在这里做个笔记,记录配置过程和遇到问题,希望对大家有所帮助。
环境准备
操作系统:CentOS 7
准备四个节点:
192.168.128.129 node01
192.168.128.132 node02
192.168.128.130 node03
192.168.128.131 node04
//注:每个节点能相互ping通
配置过程
1.生产密钥对
ssh-keygen -t rsa
# 在node01、node02、node03、node04分别执行
执行过程中遇到输入,直接回车就可以,进入~/.ssh/目录,会有一对秘钥
id_rsa 私钥
id_rsa.pub 公钥(公布给授权访问本节点的其他节点)
2.拷贝公钥
选择node01节点,把其他节点公钥拷贝到node01节点 ~/.ssh目录下
node02:
# 进入ssh目录
cd ~/.ssh
# 复制备份重命名公钥
cp id_rs.pub id_rsa_node02.pub
# 拷贝到node01节点
scp -r id_rsa_node02.pub node01:`pwd`
node03:
# 进入ssh目录
cd ~/.ssh
# 复制备份重命名公钥
cp id_rs.pub id_rsa_node03.pub
# 拷贝到node01节点
scp -r id_rsa_node03.pub node01:`pwd`
node04:
# 进入ssh目录
cd ~/.ssh
# 复制备份重命名公钥
cp id_rs.pub id_rsa_node04.pub
# 拷贝到node01节点
scp -r id_rsa_node04.pub node01:`pwd`
拷贝公钥到~/.ssh/authorized_keys 文件中
# 拷贝node01、node02、node03、node04节点的公钥到node01的authorized_keys
cat id_rsa.pub >> ~/.ssh/authorized_keys
cat id_rsa_node02.pub >> ~/.ssh/authorized_keys
cat id_rsa_node03.pub >> ~/.ssh/authorized_keys
cat id_rsa_node04.pub >> ~/.ssh/authorized_keys
3.分发公钥
把配置好的公钥分发拷贝到其余节点的~/.ssh/的目录下
scp -r authorized_keys node02:`pwd`
scp -r authorized_keys node03:`pwd`
scp -r authorized_keys node04:`pwd`
4.修改SSH配置文件
vi /etc/ssh/sshd_config
修改内容如下:
PermitRootLogin yes
StrictModes no
PubkeyAuthentication yes
这个文件里可以发现 AuthorizedKeysFile .ssh/authorized_keys ,故以步骤2要公钥拷贝到这个文件里
每个节点都要修改,然后重启ssh
systemctl restart sshd.service
最后验证登录其他节点
ssh node02 若不需要输入密码 则配置成功;否则配置失败
遇到问题
1.权限问题
需要设置ssh目录权限
chmod 700 ~/.ssh
chmod 644 ~/.ssh/authorized_keys
2.防火墙和selinux问题
配置ssh需要关闭linux安全策略
# 关闭防火墙
systemctl stop firewalld.service
# 禁止防火墙开机自启动
systemctl disable firewalld.service
# 查看防火墙状态
systemctl status firewalld.service
#关闭selinux
vi /etc/sysconfig/selinux
设置SELINUX=disabled
重启生效