在Linux集群中配置SSH免密的具体步骤如下:
注意:实现准备好集群需要用到的虚拟机
- 更新系统软件包。集群中所有集群操作系统安装成功之后,在集群中所有的机器中通过命令:sudo apt-get update 来更新操作系统相关的软件包信息,如下图 。
sudo apt-get update |
- 安装SSH服务端。在集群中所有的机器中通过命令:sudo apt-get install openssh-server
来安装SSH的服务端,如下图。
sudo apt-get install openssh-server |
- 集群中所有的机器都安装SSH之后,在机器中选定一台机器作为主(master),其
他机器做从(slave),在各个机器中,添加对其他机器的映射。使用命令:sudo vi /etc/hosts 来添加各个主从机器的映射。为了便于操作,使用命令 vi /etc/hostname命令对集群中所有主机名进行了修改,如下图。
vi /etc/hostname |
sudo vi /etc/hosts |
使用ping 命令查看所有从机是否能够连通,如下图
ping 主机名 -c 3 |
使用SSH连接到主机或者从机都需要输入密码,如下图。
ssh 主机名 |
- 生成主机器的SSH密钥,并添加密钥到系统的登录验证中。使用命令:sudo ssh-keygen –t rsa 来生成SSH的密钥,在生成的过程中,如果需要输入相关信息可以使用置空的默认值,如下图。
sudo ssh-keygen –t rsa |
图 生成SSH密钥
生成密钥之后使用命令让密钥生效:
cat .ssh/id_rsa.pub >>.ssh/authorized_keys |
生效之后,SSH连接master将无需密码,如下图
5)从机SSH免密设置
master能够免密登录之后,使用scp命令将公约id_rsa.pub推送到各个从机中。以对sjw02机器的免密设置为例,进行讲解,其他的从机都是相同的操作。
使用命令:scp .ssh/id_rsa.pub root@sjw02:/tmp。 命令中root@sjw02表示sjw02机器的root用户,/tmp是将id_rsa.pub发送到从机的/tmp目录下,/tmp是Linux的临时文件夹,该命令由于SSH免密还没有设置,会需要用户输入sjw02机器上root用户的密码,如下图。
scp .ssh/id_rsa.pub root@sjw02:/tmp |
发送成功之后,使用SSH命令登录到sjw02,这时依旧需要输入root用户的密码,登录到sjw02机器后,使用命令:cat /tmp/id_rsa.pub>>.ssh/authorized_keys将公约添加到sjw02的授权认证中,输入命令:exit退出SSH登录状态,如下图。
图 设置SSH免密
完成上述操作之后,使用SSH连接sjw02机器将不再需要输入密码,如下图。
图 SSH免密登录
依照相同的操作过程,对所有的从机都进行SSH的免密设置。