![如何在 bash 脚本中添加 SSH 已知主机?](https://linux22.com/image/622248/%E5%A6%82%E4%BD%95%E5%9C%A8%20bash%20%E8%84%9A%E6%9C%AC%E4%B8%AD%E6%B7%BB%E5%8A%A0%20SSH%20%E5%B7%B2%E7%9F%A5%E4%B8%BB%E6%9C%BA%EF%BC%9F.png)
我正在创建一个 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/