【问题标题】:How to delete local ssh tunnel如何删除本地 ssh 隧道
【发布时间】:2021-04-01 17:07:53
【问题描述】:

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

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

背景:我已将我的 ~/.ssh/config 与 Host 设置为 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 隧道有任何想法吗?

谢谢

【问题讨论】:

  • 这不是你杀死进程的方式。使用 ssh 进程的 PID 尝试 'pkill -f ssh' 或 'kill '。
  • @jdowner 抱歉,我这样做了,但我的描述不够清楚。这个命令pkill -f ssh 也对我不起作用:(

标签: git ssh localhost gitlab ssh-tunnel


【解决方案1】:

试一试:

$ ssh -O exit [REMOTE_IP]

关闭任何现有的连接。

【讨论】:

  • 我试过了,但也没有成功..[name]@MacBook-Pro ~ $ ssh -O exit [remote ip]No ControlPath specified for "-O" command[name]@MacBook-Pro ~ $ ssh -O exit [remote port]No ControlPath specified for "-O" command
  • @Dennis 尝试使用干净/空的~/.ssh/config
  • 是的,可以,但问题是,当我使用该文件的相同内容与 gitlab 建立 ssh 连接时,仍然无法建立连接(超时)。不就是一个文件或者进程什么的我可以杀掉吗,这很烦哈哈
  • @Dennis 您的配置正在尝试连接到 gitlab,而不是您的远程 ip,无论如何,如果没有建立连接,则不应有任何进程挂起
  • 你是对的..这对我来说是一个愚蠢的行为..我更改了配置的值,现在我可以再次连接。 gitlab权限被拒绝的问题也得到了修复。我不得不重新创建一个新的私钥。现在一切正常。感谢您的帮助
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2013-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-24
    • 2012-09-11
    • 2015-03-10
    • 2013-04-10
    相关资源
    最近更新 更多