我在客户端和服务器上都使用openssh。我知道我可以通过ssh 运行ssh -L
或ssh -R
设置一些端口重定向。但是,由于它们是命令行参数,因此必须在打开连接之前编写此类重定向。
我可以使用命令行ssh客户端即时设置端口重定向吗?
当我使用PuTTY
ssh客户端时,可以在连接已经打开的情况下以交互方式设置端口重定向,而无需断开或重新连接,因此我知道在技术上是可行的。
我在客户端和服务器上都使用openssh。我知道我可以通过ssh 运行ssh -L
或ssh -R
设置一些端口重定向。但是,由于它们是命令行参数,因此必须在打开连接之前编写此类重定向。
我可以使用命令行ssh客户端即时设置端口重定向吗?
当我使用PuTTY
ssh客户端时,可以在连接已经打开的情况下以交互方式设置端口重定向,而无需断开或重新连接,因此我知道在技术上是可行的。
Answers:
如果您使用的是SSH命令行,并且尚未关闭转义字符功能,则可以~C
在换行符后键入以在ssh客户端上打开迷你控制台。然后键入-L port:host:port
或-R port:host:port
或者-D port
,你会在命令行上添加一个重定向或-KR port
删除重定向。
在不重做身份验证的情况下设置重定向的一种更灵活的方法是,将第一个ssh客户端启动为主服务器(-M
或-o ControlMaster=auto
),然后将后续客户端启动为从服务器(-S
或-o ControlMaster=auto
)。从站通过主站建立的连接建立隧道。您可能需要ControlPath
在命令行或您的~/.ssh/config
;中进行设置。有关更多信息,请参见ssh_config
手册页中选项的描述。
~C escape not available to multiplexex sessions
像我刚才那样遇到问题,请不要去寻找您的主连接。相反,只需将其添加-O forward
到您的ssh端口转发命令中即可ssh -O forward -nfL 1234:whatever:1234 theserver
,它将起作用。