Centos7配置SSH免密

在搭建集群服务环境时往往需要多个服务器相互通讯,例如在搭建hadoop集群环境时,多个节点之间使用ssh协议相互通讯,每次都输入密码是一件非常繁琐的事情。本文将详细讲解如何配置使多个linux主机相互使用ssh协议免密通讯。

注:需要免密通讯的多个主机都需要进行如下配置

新建用户并设置密码

1
2
adduser 用户名
paddwd 用户名

新建用户

修改主机名

1
hostname 主机名

修改hosts将其他主机的ip地址和主机名加入

1
vi /etc/hosts

改host

修改sudoers

1
vi /etc/sudoers

如图在102行的位置加入相应用户的设置,并重启使其生效
改sudoers

修改sshd服务

1
2
3
4
5
6
vi /etc/ssh/sshd_config
放开标注的文档(去掉#):
#RSAAuthentication yes
#PubkeyAuthentication yes
重启服务,使刚才的修改生效(centos7上命令)
systemctl restart sshd.service

改sshd

修改网络配置

1
2
3
4
5
6
7
vi /etc/sysconfig/network
# Created by anaconda
NETWORKING=yes
HOSTNAME=主机名
使用如下命令使刚才的修改/etc/sysconfig/network生效
source /etc/sysconfig/network
service network restart

改network

切换用户

1
su 用户名

切换用户

为每台服务器生成秘钥

1
2
3
4
5
6
7
ssh-kengen -t 'RSA'
在/home/用户名/.ssh/目录下生成密钥文件
进入/home/用户名/.ssh/目录下会发现一对秘钥(一个公钥,一个私钥)
复制公钥内容到authorized_keys文件
cat id_rsa.pub >> authorized_keys
为authorized_keys文件设置权限644
chmod 644 authorized_keys

生成秘钥
生成秘钥

将多台主机的公钥添加到同一个authorized_keys文件下并复制给其他主机

1
2
3
4
5
6
7
可以使用如下做法
在slave服务器上将authorized_keys文件传入到master服务器上
scp authorized_keys hadoop@master:/home/hadoop/.ssh/slave
切换到master服务器将两个文件合并
cat slave >> authorized_keys
将合并后的文件传回到slave服务器上并覆盖
scp authorized_keys hadoop@slave:/home/hadoop/.ssh/authorized_keys

统一秘钥
统一秘钥
统一秘钥

至此免密配置完成使用ssh相互连接一下看看是不是不需要密码啦

免密效果
免密效果

最后更新: 2018年04月19日 20:52

原始链接: http://blog.dearbaby520.com/2018/04/12/Centos7配置SSH免密登录/