如何撤消 ssh 端口转发命令

如何撤消 ssh 端口转发命令

我半偶然地在我的 MacOS 终端上运行了这个命令:ssh -L 9090:localhost:9090 174.143.140.9

我的命令提示符现在是“localhost:~ pbreit$”,我很确定它与以前的命令提示符(“localhost”部分)不同。

我该如何“撤销”此操作?或者我需要这么做吗?我的系统似乎运行良好,但我有点紧张。

答案1

只要您看到该提示,就说明您已连接到该远程系统。您看到的是来自远程服务器的提示,与使用端口转发无关。

键入exit断开连接,然后运行相同的命令,无需等待,即可-L 9090:localhost:9090看到完全相同的提示符(因此:与端口转发无关)。同样,运行后exit或打开另一个终端窗口时,您将看到本地 Mac 的提示符,正如您所知道的那样。

(到仅有的进行端口转发而不显示提示,你可以使用ssh -N -L ...,然后使用 Ctrl-C 断开连接。)

答案2

退出 ssh 将断开隧道。如果没有连接通过它,则可以通过退出远程 shell 来完成此操作。

答案3

据我所知,目前除了退出连接之外,没有其他选项可以取消本地端口转发。可以使用以下语法取消反向端口转发(从远程计算机返回):

<RET><RET>~c  (press return twice and ~c to get the ssh command prompt)
-KR 9090:localhost:9090

这将取消您从远程计算机的端口 9090 转发到本地计算机 localhost:9090 的端口。我尝试执行 -KL 9090:localhost:9090,但它只是说不支持。所以我想最终会实现,但现在还不行。还有一个名为 CancelAllForwardings 的选项,但不幸的是您无法在客户端控制台中使用这些选项。

我在 Ubuntu 上使用 OpenSSH 5.5p1 对此进行了测试,也许较新的版本确实有该选项,但我在 openssh 更新日志中没有看到有关它的任何内容。

相关内容