我在 AWS 上有一个 ec2 实例,它具有关联的 EIP,并且可以通过 SSH 访问(通常)。不知道昨天和今天之间发生了什么变化,但现在我无法直接从我的电脑通过 SSH 连接到服务器。发生的情况是这样的:
当我通过 SSH 连接到服务器(例如 foo)时,我得到:
debug1: Connecting to foo [10.0.0.55] port 22. debug1: connect to address 10.0.0.55 port 22: Connection refused ssh: connect to host foo port 22: Connection refused
当我运行主机 foo 时,它解析为正确的 EIP 和域:
foo.bar.net has address 34.204.x.x
我知道一种解决方案是添加一个条目/etc/hosts
或调整我的条目~/.ssh/config
并将其添加.bar.net
到主机的条目中。我不想做任何一个或。我的问题是,除了这两个解决方案之外,我还能做什么来确保 SSH 指向 EIP 而不是内部 IP?仅供参考,我使用的电脑是 Mac OSX。
答案1
ssh
不“指向”任何东西,除非您在.ssh/config
.
另请注意,该host
命令专门使用 DNS 来查找名称,并且不会检查您的/etc/hosts
文件。
您的计算机配置中的某些内容将名为“foo”的主机与该 IP 地址相关联。你的档案里有吗/etc/hosts
?也许您的/etc/nsswitch.conf
文件正在执行一些不寻常的操作并从 LDAP 或 NIS 服务器中提取“foo”?
ping foo
如果你或,你会得到什么nc -v foo 22
?