我想使用ssh
的-L
选项创建端口转发。我的问题是我使用到远程主机的连接共享。因此,取决于我是否需要提供主控的连接]
ssh -O forward -L ... $remotehost
((如果已经有一个主服务器)或
ssh -N -L ... $remotehost
。我可以使用类似的东西:
if ssh -O check $remotehost 2>/dev/null; then
ssh -O forward -L ... $remotehost
else
ssh -N -L ... $remotehost
fi
,但这是合理的,从C代码开始,如果有一个选项可以使ssh
在没有主机的情况下自动启动主机,则会更容易。对于“常规”调用,您可以使用-o "ControlMaster auto"
,但这在这里做不正确的事情。我在文档中找不到这样的选项,但是想知道是否错过了什么。
所以我的问题是:是否有一个包罗万象的命令,它添加了一个独立于命令多路复用设置的端口转发,即使根本没有启用多路复用,它甚至也可以工作。
如果使用已建立的连接,ssh -N -L ... $remotehost
似乎根本不执行任何操作。这是一个错误吗?
((ssh -S none -N -L ... $remotehost
当然有效,但是明显的缺点是,那时可能不使用现有的连接。)
似乎这是旧知识,ssh -N -L ... $remotehost
在我的设置中做正确的事。自从我上次实际检查这个问题以来,大概是固定的。
检查openssh的变更日志,我没有发现此问题。