这里是下面的用例:想在3种情况下ssh server1 :
~/.ssh/config为此定义隧道 期望的结果:能够使用相同的命令并能够连接到服务器。
你已经暗示了解决scheme已经和dave4420的额外提示我有点觉得我通过发布答案作弊。
本质上, ssh-config ProxyCommand指令解决了两个非本地情况下的“如何连接”问题。 剩下的问题归结为“我如何使用一个命令,而忽略找出使用哪个案例的问题”。
在.ssh / config文件中为以下三种情况中的每一种定义主机昵称:主机server1a,主机server1b,主机server1c。
定义第四个昵称,这将是您连接到此服务器的命令,始终是:主机server1。
写一个脚本,实现你在问题中定义的逻辑。 我不能在这里伪代码,因为我不知道你用什么testing来确定你所处的三种情况。在这三种情况下,你都有一个ssh命令来使用,例如ssh server1a 。 使用此脚本作为第四个昵称的ProxyCommand 。
现在ssh server1根据上下文被代理到ssh server1[abc] 。
更多关于ProxyCommand的愚蠢的SSH技巧 。