从远程删除本地转发端口?

从远程删除本地转发端口?

注意:我阅读并尝试了此处的解决方案:如何删除 SSH 转发端口 他们没有为我工作。

注意:我不太明白这是如何工作的,因此如果能提供额外的解释以便我可以学习的话,我将不胜感激

我在远程系统上运行一个 docker 容器,我的端口映射如下:

docker run --it --rm ... -p abcd:wxyz container:tag

其中abcdwxyz是端口(例如2222:8000

然后,我想在本地系统上监听远程系统的端口。我可以通过以下方式执行此操作:

ssh -N -f -L localhost:abcd:localhost:abcd user@host

就像魔术一样,一切都奏效了,我很高兴。但是,当我完成它时,它不会自动清除。所以我想知道如何删除特定的监听。

我努力了:

$ ps aux | grep "ssh -N -f -L"
# user 23131   0.0  0.0  4268296    676 s005  S+   11:35AM   0:00.00 grep --color=auto ssh -N -f -L
$ kill 23131
-bash: kill: (23131) - No such process

所以这不起作用。

然后我尝试了以下许多变体并总是得到:

ssh -O cancel -N -f -L localhost:abcd:localhost:abcd user@host
# No ControlPath specified for "-O" command

那么正确的方法是什么?

答案1

ssh首先,我将使用以下命令开始寻找您的会话:

ps aux | grep ssh

因为您的搜索没有找到任何东西(您是否在某处放置了多个空格?)。

对于其他命令(使用 -O ssh 选项),您需要控制套接字。请查看手册页中的选项-M和和。-S sshControlPathControlMasterssh_config

相关内容