如何在 bash 脚本中添加 SSH 已知主机?

如何在 bash 脚本中添加 SSH 已知主机?

我正在创建一个 bash 脚本来配置一个可以部署 Web 应用程序的新服务器。我始终要做的一件事就是使用 GitHub 作为已知主机。如何在 bash 脚本中自动执行此过程,并以幂等方式执行?ssh [email protected]

答案1

简单的方法就是做这样的事情。

ssh-keyscan remote_server >>~/.ssh/known_hosts

如果此框是全新的,您可能还需要~/.ssh在运行之前创建目录ssh-密钥扫描

请记住,ssh-keyscan 可以接受任意数量的主机名。它将获取所有可以获取的密钥。

答案2

您是否想自动接受新密钥?如果是,您可以使用 -oStrictHostKeyChecking=no。
这样做是个非常糟糕的主意,因为您现在完全容易受到中间人攻击。

更好的选择是只管理一个 known_hosts 文件,并在配置新服务器时重复使用该文件。将其粘贴在 github 上,并编写一个简单的脚本,在 ssh 进入 github 之前下载该文件。

严格的主机密钥检查是一件好事。

答案3

我不确定我是否理解了这个问题,但我认为你想忽略known_host提示或完全避免它,在这种情况下:

ssh -o StrictHostKeyChecking=no

或其他建议:http://www.joedog.org/2012/07/ssh-disable-known_hosts-prompt/

相关内容