我正在使用 AWS CloudFormation 自动化整个环境,在测试期间,我需要经常杀死和重新创建服务器。
服务器配置为从专用池设置其 IP 地址,这意味着在我第一次连接到它们时,我必须接受主机密钥检查(是/否问题),然后当我删除服务器并重新创建时它,我每次都必须从 known_hosts 文件中删除服务器的密钥。
我的问题是:
关闭会话时是否可以自动从 known_hosts 中删除密钥?有没有我错过的设置?
我正在使用 AWS CloudFormation 自动化整个环境,在测试期间,我需要经常杀死和重新创建服务器。
服务器配置为从专用池设置其 IP 地址,这意味着在我第一次连接到它们时,我必须接受主机密钥检查(是/否问题),然后当我删除服务器并重新创建时它,我每次都必须从 known_hosts 文件中删除服务器的密钥。
我的问题是:
关闭会话时是否可以自动从 known_hosts 中删除密钥?有没有我错过的设置?
您可以将 ssh 配置为对 known_hosts 使用多个文件,并且仅将新条目添加到第一个文件中,方法是将其设置为
/dev/null
有效地它们不会被保存:将它与您个人最喜欢的询问或自动接受未知密钥相结合:
您可能希望将那些选项限制在您的 DEV 环境中的(特定主机)而不是全局默认值,因为它们会带走相当多的安全密钥检查在您的
~/.ssh/config
:你可以这样做:
StrictHostKeyChecking=no 当然是个坏主意,因为它会自动接受所有主机密钥
UserKnownHostsFile=/dev/null 不会将任何内容保存到您的正常 known_hosts 文件中。
正确的方法是将
SSHFP
(自动)放入DNS
,通过签名区域DNSSEC
并让SSH
处理其余部分,特别是如果您需要经常这样做并且密钥不断变化。