我有一个 jenkins 服务器,它运行一个作业以 ssh(无密码)连接到服务器 A 并运行一个脚本。这非常有效,我通过执行以下操作来设置它:
ssh-keygen -t rsa
关于詹金斯将 Jenkins复制
id_rsa.pub
到服务器 A (我已手动将其添加到授权密钥并执行了操作ssh-copy-id -i .ssh/id_rsa.pub
,两者似乎都有效)无需密码即可从 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 -v
或ssh -v localhost
获取这两台服务器的版本控制。
(我试图弄清楚如何sshd_config
在此处添加我的内容,但一切都将其变大且粗体)
答案1
不要重复注册机。这将重新生成密钥并中断对服务器 A 的访问。
首先执行注册机操作,然后在所有服务器上运行复制 id 命令,然后就可以开始了。
综上所述,只需运行keygen一次:
- 运行 ssh 注册机
- 运行 ssh 将 id 复制到服务器 a
- 运行 ssh 将 id 复制到服务器 b
- 运行 ssh 将 id 复制到服务器 c 等等:)