Linux 如何随会话自动停止后台ssh隧道?

Linux 如何随会话自动停止后台ssh隧道?,linux,ssh,ssh-tunnel,Linux,Ssh,Ssh Tunnel,我想要的是: 我可以在Linux机器的后台设置ssh隧道(实际上,我想在我的.bashrc中设置它) 我可以在任何时候作为这台机器上的任何用户使用这个隧道来运行这个进程,只要ssh隧道进程处于活动状态 当我从终端/会话退出时,ssh隧道也应该退出 我知道我可以在Linux中建立一个后台ssh隧道,如下所示: ssh-Nf-l8000:1.2.3.4:8000username@2.3.4.5 当我退出此终端/会话时,此ssh隧道仍将在后台运行 如何让它也自动退出 请注意: 这不符合我的要求。因为

我想要的是:

  • 我可以在Linux机器的后台设置ssh隧道(实际上,我想在我的.bashrc中设置它)
  • 我可以在任何时候作为这台机器上的任何用户使用这个隧道来运行这个进程,只要ssh隧道进程处于活动状态
  • 当我从终端/会话退出时,ssh隧道也应该退出
  • 我知道我可以在Linux中建立一个后台ssh隧道,如下所示:

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

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

    如何让它也自动退出


    请注意:
    这不符合我的要求。因为它要求我在ssh隧道进程之后立即启动进程,如果我的第一个ssh隧道任务完成,我需要为第二个任务再次设置ssh隧道。
    另一方面,如果我设置了很长的睡眠时间,那么ssh隧道不会随着我的终端退出

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

    他们使用的命令是

    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结束时,隧道应自动关闭。

    感谢您提供此解决方案!但我得说这不符合我的要求。请检查我的问题更新以了解原因。