我可以在〜/ .ssh / config中为主机名设置超时吗?

时间:2013-11-14 18:36:13

标签: ssh

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

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

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

谢谢。

1 个答案:

答案 0 :(得分:1)

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

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

nets=$(hostname -I)

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

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

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