Andrew Asked: 2013-12-05 17:07:51 +0800 CST2013-12-05 17:07:51 +0800 CST 2013-12-05 17:07:51 +0800 CST 如何在 bash 脚本中添加 SSH 已知主机? 772 我正在创建一个 bash 脚本来配置一个可以部署 Web 应用程序的新服务器。我必须做的一件事就是将 GitHub 作为已知主机使用ssh [email protected]. 如何在 bash 脚本中自动执行此过程,并以幂等方式执行此过程? ssh 3 个回答 Voted Best Answer Zoredache 2013-12-05T21:29:51+08:002013-12-05T21:29:51+08:00 最简单的方法是做这样的事情。 ssh-keyscan remote_server >>~/.ssh/known_hosts 如果此框是全新的,您可能还需要在运行ssh-keyscan~/.ssh之前创建目录。 请记住, ssh-keyscan 可以采用任意数量的主机名。它会得到它所能得到的所有密钥。 user143703 2013-12-05T17:18:20+08:002013-12-05T17:18:20+08:00 您是否尝试自动接受新密钥?如果是这样,您可以使用 -oStrictHostKeyChecking=no。 这样做是一个非常糟糕的主意,因为您现在对中间人攻击完全开放。 更好的选择是管理 known_hosts 文件并在您配置新服务器时重用该文件。将其粘贴在 github 上并编写一个简单的脚本来下载该文件,然后再将其 ssh 到 github。 严格的主机密钥检查是一件好事。 Sirex 2013-12-05T17:17:08+08:002013-12-05T17:17:08+08:00 我不确定我是否理解这个问题,但我认为您想忽略 known_host 提示或完全避免它,在这种情况下: ssh -o StrictHostKeyChecking=no 或其他建议:http ://www.joedog.org/2012/07/ssh-disable-known_hosts-prompt/
最简单的方法是做这样的事情。
如果此框是全新的,您可能还需要在运行ssh-keyscan
~/.ssh
之前创建目录。请记住, ssh-keyscan 可以采用任意数量的主机名。它会得到它所能得到的所有密钥。
您是否尝试自动接受新密钥?如果是这样,您可以使用 -oStrictHostKeyChecking=no。
这样做是一个非常糟糕的主意,因为您现在对中间人攻击完全开放。
更好的选择是管理 known_hosts 文件并在您配置新服务器时重用该文件。将其粘贴在 github 上并编写一个简单的脚本来下载该文件,然后再将其 ssh 到 github。
严格的主机密钥检查是一件好事。
我不确定我是否理解这个问题,但我认为您想忽略 known_host 提示或完全避免它,在这种情况下:
ssh -o StrictHostKeyChecking=no
或其他建议:http ://www.joedog.org/2012/07/ssh-disable-known_hosts-prompt/