返回 导航

其他

hangge.com

实现Linux主机节点之间SSH免密登录教程

作者:hangge | 2024-01-04 08:45
    在多台 Linux 主机之间进行 SSH 免密登录除了可以提高工作效率,并简化管理任务外,一些技术组件的集群化部署也需要服务器之间能够免密登录,比如 HadoopHBase 主节点需要通过 SSH 远程登录从节点以启动从节点中的进程,所以需要配置主节点到所有从节点的免密码登录。下面我将通过样例演示该功能如何实现。

1,准备工作

(1)首先我们准备三台 linux 服务器,具体信息如下:
主机名 内网IP
node1 172.31.4.99
node2 172.31.3.72
node3 172.31.6.103

(2)我们将三台服务器主机名分别配置为 node1node2node3,其中 node1 配置命令如下,其它同理:
注意:无论是主机名设置,还是 host 文件配置都是为了使用时更加方便,并不是实现免密登录的必要条件。
hostname node1

(3)同时修改三台服务器的 hostname文件,里面填写对应的主机名,以 node1 为例:
vi /etc/hostname

(4)为方便后续服务器间相互访问,我们在三台服务上均执行如下命令编辑的 host 文件,使得可以通过主机名相互访问:
echo '
172.31.4.99 node1
172.31.3.72 node2
172.31.6.103 node3' >> /etc/hosts

2,生成公钥和秘钥文件

(1)首先我们在 node1 上执行以下命令,生成公钥和秘钥文件。
提示:在执行命令之后,需要连续按 4Enter 键最终回到 Linux 命令行中才表示这个操作执行结束。在按 Enter 键时不需要输入任何内容。
ssh-keygen -t rsa

(2)node2node3 也执行同样命令生成各自的公钥和秘钥文件。


3,配置免密码登录

(1)公钥和秘钥文件默认会生成在当前用户目录下的 .ssh 目录下,我们到 node1 上查看该目录:
ll ~/.ssh/

(2)然后,把公钥复制到需要免密码登录的节点(包括自己)中。
提示:如果是搭建 Hadoop 集群,主节点在启动自身节点上的进程时也是通过 SSH 远程登录的,所以主节点也需要免密码登录自己。
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

scp ~/.ssh/authorized_keys node2:~/

scp ~/.ssh/authorized_keys node3:~/

(3)接着在 node2node3 上均执行如下命令:
cat ~/authorized_keys >> ~/.ssh/authorized_keys

(4)这样 node1node2node3 的免密登录就已经配置完毕了。如果需要 node2 或者 node3 到其他节点的免密登录,可以依照上述操作,把自己的公钥复制到其他节点上即可。
 

4,使用测试

(1)我们在 node1 节点上使用 SSH 远程登录 node2 节点,如果不需要输入密码则表示免密码登录配置是成功的。
ssh node2

(2)在 node1 节点上使用 SSH 远程登录 node3 节点同样也是免密的。
ssh node3
评论

全部评论(0)

回到顶部