将服务器添加到 known_hosts

6 ubuntu ssh bash puppet

我想从命令行将 github.com 添加到 known_hosts 文件,因为我正在创建一个 puppet 清单来配置远程服务器。

我试过了:

"ssh-keyscan -H github.com > /home/ubuntu/.ssh/known_hosts"
Run Code Online (Sandbox Code Playgroud)

但是当服务器尝试访问github时:

Failed to add the RSA host key for IP address '207.97.227.239' to the list 
of known hosts (/home/ubuntu/.ssh/known_hosts).
Run Code Online (Sandbox Code Playgroud)

我也试过:

"ssh-keyscan -H github.com,207.97.227.239 > /home/ubuntu/.ssh/known_hosts"`
Run Code Online (Sandbox Code Playgroud)

但是访问github抛出:

Host key verification failed.
Run Code Online (Sandbox Code Playgroud)

我确定这没有其他用途,但是如果我 ssh 我的服务器,然后 ssh github 并按照步骤操作,我会收到以下消息Permanently added 'github.com,207.97.227.239' (RSA) to the list of known hosts,然后它将完美运行。

谢谢

sys*_*138 9

我们通过将 known_hosts 文件放在 puppet 服务器上并直接从 puppet 中提供文件来处理这个问题:

file{
  "/home/appuser/.ssh/known_hosts":
  owner => "appuser",
  group => "appuser",
  mode => 755,
  source => "puppet:///modules/ssh/known_hosts",
  require => File["/home/appuser"];
}
Run Code Online (Sandbox Code Playgroud)

这会从 puppet 存储库中复制格式正确的 known_hosts 文件,相应地设置用户,并确保其具有正确的权限。对我们来说效果很好。

  • 出于好奇,您为什么不使用 `sshkey` 资源将密钥直接发布到系统范围内的 known_hosts 文件? (4认同)
  • 啊,我喜欢 [sshkey](http://docs.puppetlabs.com/references/latest/type.html#sshkey) 比替换整个文件更好,因为它允许我添加/删除单个密钥并仍然允许本地更改,这在我的环境中有些需要。 (3认同)