无密码 ssh 不适用于多个服务器

无密码 ssh 不适用于多个服务器

我有一个 jenkins 服务器,它运行一个作业以 ssh(无密码)连接到服务器 A 并运行一个脚本。这非常有效,我通过执行以下操作来设置它:

  1. ssh-keygen -t rsa关于詹金斯

  2. 将 Jenkins复制id_rsa.pub到服务器 A (我已手动将其添加到授权密钥并执行了操作ssh-copy-id -i .ssh/id_rsa.pub,两者似乎都有效)

  3. 无需密码即可从 Jenkins 成功 SSH 到服务器 A

我似乎无法做的是使用完全相同的 keygen、副本和 ssh 将 Jenkins 上的相同行为复制到服务器 B。我做的唯一不同的事情是我给 id_rsa 一个不同的名称,比如id_rsa_x.pub不覆盖现有的名称。我还尝试将公钥的位置更改为authorized_keys2,但查看我的/etc/ssh/sshd_config似乎默认情况下已禁用。我不确定为什么会发生这种行为,因为我在谷歌上搜索的所有内容都表明这是正确的方法。

我认为这要么是 sshd_config 配置错误,要么是我的 Jenkins 服务器是 CentOS 6.9 和 ssh 版本(OpenSSH_5.3p1、OpenSSL 1.0.1e-fips 2013 年 2 月 11 日)并且服务器 A 和 B 是 CentOS 7.4。我无法执行ssh -vssh -v localhost获取这两台服务器的版本控制。

(我试图弄清楚如何sshd_config在此处添加我的内容,但一切都将其变大且粗体)

答案1

不要重复注册机。这将重新生成密钥并中断对服务器 A 的访问。

首先执行注册机操作,然后在所有服务器上运行复制 id 命令,然后就可以开始了。

综上所述,只需运行keygen一次

  1. 运行 ssh 注册机
  2. 运行 ssh 将 id 复制到服务器 a
  3. 运行 ssh 将 id 复制到服务器 b
  4. 运行 ssh 将 id 复制到服务器 c 等等:)

相关内容