【问题标题】:How to stop background ssh tunnel automatically along with session? [closed]如何与会话一起自动停止后台 ssh 隧道? [关闭]
【发布时间】:2016-04-14 03:14:35
【问题描述】:

我想要的如下:

  1. 我可以在 Linux 机器的后台设置一个 ssh 隧道(实际上,我想在我的 .bashrc 中设置它)
  2. 只要 ssh 隧道进程处于活动状态,我就可以随时以这台机器上的任何用户身份使用该隧道运行进程。
  3. 当我退出终端/会话时,ssh 隧道也应该退出。

我知道我可以在 Linux 中建立一个后台 ssh 隧道,如下所示:

ssh -Nf -L 8000:1.2.3.4:8000 username@2.3.4.5

当我退出此终端/会话时,此 ssh 隧道仍将在后台运行。

如何让它也自动退出?


请注意:
这个http://www.g-loaded.eu/2006/11/24/auto-closing-ssh-tunnels/ 不符合我的要求。因为它要求我在 ssh 隧道进程之后立即启动我的进程,并且如果我的第一个 ssh 隧道任务完成,我需要再次设置 ssh 隧道以执行第二个任务。 另一方面,如果我设置了较长的睡眠时间,那么 ssh 隧道将不会随着我的终端退出。

【问题讨论】:

    标签: linux ssh ssh-tunnel


    【解决方案1】:

    这里有一个聪明的解决方案:

    http://www.g-loaded.eu/2006/11/24/auto-closing-ssh-tunnels/

    他们使用的命令是

    ssh -f -L 25901:127.0.0.1:5901 me@remote.example.org sleep 10
    vncviewer 127.0.0.1:25901:1
    

    他们首先将sleep 命令提供给远程服务器。他们指定了一个任意短的时间(10 秒)。由于这是连接的“目标”,隧道将自动关闭。但是,它并没有关闭,因为当时另一个命令(在他们的情况下为vncserver)访问了它。当 vncserver 结束时,隧道应该会自动关闭。

    【讨论】:

    • 感谢您的解决方案!但我不得不说这不符合我的要求。请检查我的问题更新原因。
    猜你喜欢
    • 1970-01-01
    • 2011-10-09
    • 2012-03-15
    • 2017-02-16
    • 2017-10-20
    • 2015-09-30
    • 2017-12-07
    • 1970-01-01
    • 2011-05-23
    相关资源
    最近更新 更多