如何删除本地ssh隧道

时间:2018-07-21 13:25:38

标签: git ssh localhost gitlab ssh-tunnel

我在Macbook上的ssh隧道有问题。 我不小心按了以下命令Enter:ssh -f -N [REMOTE_IP]

现在,当我想与dat REMOTE_IP连接时,始终有效,我收到了一个超时请求:ssh: connect to host gitlab.com port [PORT_OF_REMOTE]: Operation timed out

背景:我已将主机的〜/ .ssh / config设置为gitlab.com主机名:

Host [REMOTE_IP] HostName gitlab.com Port [PORT_OF_REMOTE] IdentityFile ~/.ssh/id_rsa

现在我在过去的几个小时中做了一些研究,以了解如何删除此本地ssh隧道。我知道该命令的语法不正确,因此无法创建隧道,因为我错过了一些参数。但这破坏了我与远程服务器连接的ssh。

当我注释掉HostName gitlab.com规则时,它可以正常工作,但是我需要该规则在服务器上使用git。

尝试终止ssh进程也不适用于ps -ax | grep ssh

编辑:试图用ps -ax | grep ssh找到PID并用kill <PID>杀死它,但是每次我按下ps -ax命令时,PID都会改变。

您有任何想法如何解决此问题/如何删除该本地ssh隧道吗?

谢谢

2 个答案:

答案 0 :(得分:0)

尝试:

$ ssh -O exit [REMOTE_IP]

关闭所有现有连接。

答案 1 :(得分:0)

下面的命令将找到具有特定名称的进程并向其发送终止信号,

pkill -f "ssh -f -N [REMOTE_IP]"

附言在我的 ~/.zshrc(或 ~/.bashrc)中,我将这样的别名设置为在一个命令中开始或停止。 :)

alias server-up='ssh -fNTML 8888:localhost:8888 [REMOTE IP]'
alias server-down='pkill -f "ssh -fNTML 8888:localhost:8888 [REMOTE IP]"'

参考:https://mpharrigan.com/2016/05/17/background-ssh.html