集群中配置多台机器之间 SSH 免密码登录

Posted miracle-luna

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了集群中配置多台机器之间 SSH 免密码登录相关的知识,希望对你有一定的参考价值。

集群中配置多台机器之间 SSH 免密码登录


 

问题描述

由于现在项目大多数由传统的单台机器部署,慢慢转变成多机器的集群化部署。

但是,这就涉及到机器间的 SSH 免密码互通问题。

当集群机器比较多的时候,如何能快速简洁地配置机器之间的免密码登录呢?


 

完美方案

1、分别查看集群的机器上,是否安装了 SSH,并且服务正常运行

ps -ef | grep ssh

技术图片

 

2、如果步骤 1 检查后,确认没有安装 SSH,可以通过如下命令安装 SSH

sudo apt-get install ssh

找到隐藏目录.ssh(ll -a 可以查看隐藏文件和隐藏目录)。如果没有这个目录,可以使用 mkdir .ssh 命令新建。

 

3、进入.ssh目录下面,在每台机器上执行如下命令(一路回车,产生密钥):

ssh-keygen -t  rsa

 

4、完成第3步后会产生两个文件:

id-rsa私钥

id-rsa.pub  (公钥

 

5、在第 1 台机器的.ssh目录下执行如下命令(此后.ssh目录下会出现authorized_keys文件)

cat id-rsa.pub >> authorized_keys

 

6、将第1台机器的.ssh目录下面的 authorized_keys 文件拷贝到第 2 台计算机的.ssh目录下

scp authorized_keys root@node2:/root/.ssh/

 

7、登录第2台机器,在第2台机器的.ssh目录下,执行如下命令(将第2台机器的公钥追加authorized_keys 中)

cat id-rsa.pub >> authorized_keys.

 

8、依次类推,直到集群中的最后一台机器的公钥添加到 authorized_keys 中 。

 

9、在集群的最后一台机器执行完追加后,生成的 authorized_keys 文件就包含集群中所有机器的公钥。

此时,将最后一台机器上的 authorized_keys 文件,分别 scp 复制到集群中的每一台机器的.ssh目录下,覆盖原来的authorized_keys 文件。

 

10、完成第 9 步后,集群中的机器之间就实现了 免密码ssh登录。

以上是关于集群中配置多台机器之间 SSH 免密码登录的主要内容,如果未能解决你的问题,请参考以下文章

linux ssh免密码登录设置

linux系统,多台机器ssh免密码登录同一台机器执行某个脚本,不需要expect

Hadoop集群配置免密SSH登录方法

配置集群各机器间免密码登陆(开启ssh互信)

Linux之间配置SSH互信(SSH免密码登录)

Linux之间配置SSH互信(SSH免密码登录)