无论在本地搭建实验环境还是在生产环境中,多节点并行计算设置中,建立Linux主机间的SSH互信是非常重要的环节.常见的互信机制包括RSH和SSH两种,其中SSH互信较常用到,下面介绍SSH的原理及其配置方法.
首先,我们先了解下配置ssh互信的原理,ssh互信,说白了,就是在目标机器上,预先设置好经过认证的key文件,当需要访问目标机器时,目标机器通过key文件,对访问者进行自动认证,从而实现互信.
了解了ssh互信的原理,我们把配置ssh互信的步骤,进行有效的分割:
1.首先,在要配置互信的机器上,生成各自的经过认证的key文件;
2.其次,将所有的key文件汇总到一个总的认证文件中;
3.将这个包含了所有互信机器认证key的认证文件,分发到各个机器中去;
4.验证互信;
实例演示:CentOS 7.5系统的两台电脑,IP分别为192.168.0.100和192.168.0.101,主机名(hostname)分别为node0和node1,默认都已安装SSH服务,要实现两个名称相同的账号root间的互信连接.
备注:主机名可以通过root用户修改/etc/sysconfig/network中的hostname变量名,重启设定生效,而hostname命令只修改当前显示的主机名,重启后即失效.
1.节点node1上,以root身份修改/etc/hosts文件,以建立主机IP和主机名(hostname)间的映射,其文件格式如下:
1 | Do not remove the following line, or various programs |
IP hostname.domainname hostname,其中各项以Tab键隔开.
注意:修改该文件不是必须步骤,但方便以后用主机名直接访问各主机,省去了输入IP地址的麻烦.在节点node2上进行相同操作.
2.用户root身份,在node1上生成认证RSA密钥(这里有个细节,就是ssh互信的认证文件,需要放在用户的home目录下的.ssh目录中,因此我们要首先建立这个目录,并且保证这个目录的权限是700):
1 | cd |
中间过程直接3个回车.在~/.ssh/目录下,生成了两个文件:id_rsa(私钥文件放在本地) 和 id_rsa.pub(公钥文件放在信任服务器).
在node2上,以用户root身份进行相同操作.
3.将所有的公钥文件 id_rsa.pub汇总到一个总的认证文件authorized-keys中:
1 |
|
4.经过1,2两步,目前node1上存在一份完整的认证key文件,这时候,把她拷到node2主机的对应目录下
1 | scp ~/.ssh/authorized_keys root@node2:~/.ssh/authorized_keys |
5.大功告成,这时候,再互相用ssh命令连接,看看是否配置成功.