我有一个基于密钥的服务器登录名。服务器的 IP 和 DNS 可能会更改,因为它托管在 Amazon 上。
当服务器的指纹匹配时,有没有办法配置 ssh 客户端配置以仅使用此服务器的特定密钥文件?
换句话说:通常服务器在 ssh 客户端配置中通过 IP 或 DNS 匹配。我想通过指纹来做到这一点,因为 IP 和 DNS 可能会改变。
答案1
Host
您可以在中的部分中使用通配符~/.ssh/config
。如果您使用 EC2 的主机名连接到您的实例,则以下操作应该有效:
Host *.compute-1.amazonaws.com
IdentityFile ~/.ssh/id_rsa.aws
# If you don't want to verify host fingerprints because they change all the time
CheckHostIP no
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
如果您使用 IP 地址,则必须找到正确的 IP 范围并添加适当的通配符条目来匹配这些 IP 地址。
答案2
尝试一下这是否适合您:将~/.ssh/config
以下内容添加到文件:
Host alias_for_host_you_want_to_connect
HostName real_name_for_host_you_want_to_connect
CheckHostIP no
IdentityFile /path/to/your/keyfile
#StrictHostKeyChecking no
(如果其他方法都失败的话,请注释掉最后一行)