如果我在〜/ .ssh / config中创建一个主机别名,如下所示:
host myhost
hostname myhost.mysubnet.mynet.com
hostname myhost.mynet.com
user igordcard
我可以使用ssh myhost
完美地连接到myhost.mysubnet.mynet.com。但是,如果无法访问此主机名,则永远不会连接。有没有办法为第一个主机名设置超时,以便它可以自动尝试第二个主机名,依此类推?如果没有,还有其他方法可以达到几乎相同的效果吗?
谢谢。
答案 0 :(得分:1)
这个答案反映了我决定采用的解决方法的确切实现,基于damienfrancois提供的页面链接和pcm内部的答案。
在~/.bashrc
下,我在最后添加了以下内容:
nets=$(hostname -I)
if [[ "$nets" == *192.168.* ]]
then
alias ssh='ssh -F .ssh/config.alt'
fi
获取连接的网络接口地址列表,然后尝试将特定网络地址的一段与该列表匹配,以检查我们是否连接到某个网络,如果是,则ssh
的别名设置为使用备用ssh配置文件。
这种解决方法显然会失败,例如当主机从网络移动到网络但这些网络共享相同的网络前缀时。但是,对于我的具体情况(以及许多其他情况),这就足够了。