0

如果我在 ~/.ssh/config 中创建一个主机别名,如下所示:

host myhost
    hostname myhost.mysubnet.mynet.com
    hostname myhost.mynet.com
    user igordcard

我能够完美地使用 .myhost.mysubnet.mynet.com 连接到ssh myhost。但是,当无法访问此主机名时,它将永远无法连接。有没有办法为第一个主机名设置超时,以便它可以自动尝试第二个,等等?如果没有,有没有其他方法可以达到几乎相同的效果?

谢谢你。

4

1 回答 1

1

这个答案反映了我决定做的解决方法的确切实现,基于 damienfrancois 提供的页面链接和该页面内 pcm 的答案。

~/.bashrc最后我添加了以下内容:

nets=$(hostname -I)

if [[ "$nets" == *192.168.* ]]
then
  alias ssh='ssh -F .ssh/config.alt'
fi

它获取已连接的网络接口地址列表,然后尝试将特定网络地址的段与该列表匹配,以检查我们是否连接到某个网络,如果是,ssh则设置别名以使用替代 ssh 配置文件。

这种解决方法显然会失败,例如当主机从一个网络移动到另一个网络但这些网络共享相同的网络前缀时。但是,对于我的具体情况(以及许多其他情况),这就足够了。

于 2013-11-14T23:04:55.007 回答