Linux建立SSH免密码互信方法

Linux建立SSH免密码互信方法

Linux建立SSH免密码互信方法

Linux建立SSH免密码互信方法

Linux建立SSH免密码互信方法

在多节点并行计算设置中,建立Linux主机间的SSH互信是非常重要的环节。常见的互信机制包括RSH和SSH两种,其中SSH互信较常用到,下面介绍SSH的原理及其配置方法。

 

首先,我们先了解下配置ssh互信的原理,ssh互信,说白了,就是在目标机器上,预先设置好经过认证的key文件,当需要访问目标机器时,目标机器通过key文件,对访问者进行自动认证,从而实现互信。

 

了解了ssh互信的原理,我们把配置ssh互信的步骤,进行有效的分割:
1. 首先,在要配置互信的机器上,生成各自的经过认证的key文件;
2. 其次,将所有的key文件汇总到一个总的认证文件中;
3. 将这个包含了所有互信机器认证key的认证文件,分发到各个机器中去;
4. 验证互信;

 

1. 用户root身份,在node1上生成认证RSA密钥(这里有个细节,就是ssh互信的认证文件,需要放在用户的home目录下的.ssh目录中,因此我们要首先建立这个目录,并且保证这个目录的权限是700):

[deven@node1 ~]$ cd
[deven@node1 ~]$ mkdir .ssh
[deven@node1 ~]$ chmod 700 .ssh
[deven@node1 ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/deven/.ssh/id_rsa): (回车)
Enter passphrase (empty for no passphrase): (回车)
Enter same passphrase again:(回车)
Your identification has been saved in /home/deven/.ssh/id_rsa.
Your public key has been saved in /home/deven/.ssh/id_rsa.pub.
The key fingerprint is:
89:56:d6:4a:b2:6c:4a:05:86:ae:cd:7d:80:dd:3c:f1 root@ip

中间过程直接3个回车。在~/.ssh/目录下,生成了两个文件:id_rsa(私钥文件放在本地) 和 id_rsa.pub(公钥文件放在信任服务器)。

 

在node2上,以用户root身份进行相同操作。

 

2. 将所有的公钥文件 id_rsa.pub汇总到一个总的认证文件authorized-keys中:

[root@node1 ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

3. 经过1,2两步,目前node1上存在一份完整的认证key文件,这时候,把她拷到node2主机的对应目录下

[root@node1 ~]$ scp ~/.ssh/authorized_keys root@ip2:~/.ssh/authorized_keys

4. 大功告成,这时候,再互相用ssh命令连接,看看是否配置成功。

最终配置后的文件应该是这样的。

-rw------- 1 root root 1200 Sep  5  2012 authorized_keys
-rw------- 1 root root 1675 May  2  2012 id_rsa
-rw-r--r-- 1 root root  400 May  2  2012 id_rsa.pub
-rw-r--r-- 1 root root 7947 Jul 31 12:52 known_hosts

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>