多语言展示
当前在线:1736今日阅读:2今日分享:38

Linux多台服务器互相免密登录

多机免密登录在分布式系统使用广泛。本教程演示在Centos系统下,多台服务器如何互相免密登录。
工具/原料

3台服务器,均为Centos系统。

方法/步骤
1

首先要清楚免密登录实现的原理。所谓免密登录,是在客户端生成公钥和私钥,把公钥放在服务器上,其实是把公钥的内容写入到服务器的 .ssh/authorized_keys 文件里。  然后客户端请求登录服务器时,服务器会把一个字符串用这个客户端的公钥进行加密,传回给客户端,如果这个客户端的私钥能够解密这个字符串,则表示这个客户端能够登录上这个服务器。

2

下面就开始免密登录的操作。  要做三个前期工作。1.     生成免密登录的账号。避免使用root账号。2.     生成公钥和私钥,以及 authorized_keys 文件,并改权限为600。3.     将每台服务器的别名和IP写入到hosts文件。这步是方便以后的操作。非必须。

3

以我的为例,我的是5台机互相免密登录。登录账号是hadoop  新建hadoop账号,输入命令  useradd -r hadoop hadoop

4

切换到hadoop账号,生成公钥和私钥。  输入命令:  su – hadoop  ssh-keygen -t rsa  一直回车,可以看到已经生成 .ssh/ 文件夹,里面有两个文件,分别就是公钥文件和私钥文件。

5

生成 authorized_keys 文件。  在 .ssh/ 文件夹建立 authorized_keys 文件,并改权限为600。  输入命令  touch .ssh/ authorized_keyschmod 600 .ssh/ authorized_keys

6

将每台服务器的别名和IP写入到hosts文件,这一步非必须,只是方便以后的操作。以我的为例,我的每台服务器的hosts文件如下。

7

到这里,前期工作全部完成。接下来就是免密登录操作的核心,把公钥的内容写入到 authorized_keys 。也就是说,每台服务器的 authorized_keys文件里的内容应该是 其他几台服务器的公钥,即id_rsa.pub这个文件的内容。

8

以其中一台服务器为例,我称它别名为centos1,它 authorized_keys 文件的内容如下截图。可以看到就是把其他机器的公钥内容都写到里面。至于如何复制公钥的内容到 authorized_keys 文件了,这里就不详说了,最简单的就是通过复制粘贴。

9

OK,到此,免密登录就完成了。验证一下,例如,1机登录3机,在1机输入命令ssh hadoop@centos3又例如,3机登录2机,在3机输入命令ssh hadoop@centos2可以看到登录都是成功的。

推荐信息