我有一台笔记本电脑和多个可以访问的网络。当我在网络 Alpha 上时,我想要访问ssh 192.168.1.10
,它是一个网络服务器。当我在网络 Beta 上时,我想要访问ssh 192.168.1.10
,它是一个文件服务器。
因为我要去参观两个不同的机器相同的IP,我拿到了大横幅
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
但实际上发生的是,我在不同的私人网络上,所以我的ssh
命令的上下文是不同的。
我知道我可以这样做ssh -o StrictHostKeyChecking=no
并绕过检查,但有没有办法继续检查(嘿,我想知道其中一个主机是否真的发生了变化)但使其具有网络感知能力?
答案1
实施 IPv6。为主机和 DNS 添加全局唯一地址。通过/64
子网可以明确知道哪个网络是属于哪个网络。
也许只是为了方便管理而设立的大项目。但如果组织合并、重组或使用 VPN,从而引发地址冲突,那么这可能会成为一个更大的问题。
答案2
在 /etc/hosts 中添加类似这样的内容:
192.168.1.10 alpha-webserver beta-fileserver
然后使用ssh user@alpha-webserver
或ssh user@beta-fileserver
。
ssh 已知主机文件使用您给作为密钥,因此只需使用 2 个不同的名称,而不是 1 个 IP。在其他情况下可能也很有用——名称总是比数字更不容易出错 :)