取消 ssh 端口转发

取消 ssh 端口转发

为了访问受限制的大学网页,我经常运行以下命令:

ssh -fND port [email protected]

然后我打开一个 Firefox 配置文件,我已将其设置为使用 socks 代理通过端口 5555。我已经使用 cygwin ssh 这样做了一段时间,它工作正常。现在我在 ubuntu 上运行它,它也能工作,但是当我关闭终端时它似乎并没有结束。我目前没有打开任何终端,但我仍然可以使用端口 5555 上的 socks 代理浏览网页并访问我不应该能够访问的所有受限页面。如果我更改端口号或 Firefox 配置文件,那么我将无法访问这些文件,所以我能得出的唯一结论是连接仍然打开,这引出了我的问题:我如何取消它?

答案1

ssh 进程必须仍在运行。如果您确信这是唯一以你的用户身份运行的 ssh 进程,你可以这样做

killall ssh

作为您的用户。但是,找到正确的进程 PID 并终止该特定进程 - 这样可以避免终止正在运行的任何其他 ssh 进程。您可以使用图形工具执行此操作,也可以:

ps -Afl|grep ssh

这将为您提供一个进程列表 - 每行用户名后的第一个数字是 PID。然后杀死它:

kill PID

其中 PID 是您上面找到的 PID。

提问者编辑:

每次我这样做时,我都不会手动终止进程,而是制作了一个可能对其他人有用的 shell 文件:

ssh -fND port [email protected] && firefox -P SSH && kill `ps -ef|grep "ssh -fND"|grep -v "grep"|cut -c10-15`

firefox 命令使用我必须创建的 SSH 配置文件打开 firefox(它只具有必要的代理设置)。对进程的第二次 grep 只是为了避免杀死 grep 进程本身(虽然现在想想这似乎没有必要:grep 在被杀死时就已经完成了)。

相关内容