linux - 如何与 session 一起自动停止后台ssh隧道?

标签 linux ssh ssh-tunnel

<分区>

我想要的是这样的:

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

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

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

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

如何让它也自动退出?


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

最佳答案

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

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

关于linux - 如何与 session 一起自动停止后台ssh隧道?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34693974/

相关文章:

通过具有公共(public) IP 的中介从一个本地网络 SSH 到另一个本地网络

ssh - 有人可以用简单的方式解释 SSH 隧道吗?

ssh - PhpStorm ssh 隧道到远程服务器 - 在远程服务器上需要配置什么?

PHP 邮件();不通过 ssmtp 发送简单的邮件

python - 如何使用特定的 HostkeyAlgorithms 配置 pysftp/paramiko 连接 - python

python - 如何正确实例化由本地和远程机器组成的 IPython 集群

python - 如何从终端运行 google Colab Notebook?

html - 通过 virtual box/ubuntu 使用 godaddy 域运行在线网站

php - Linux 在启动时运行 php 脚本

linux - 在 sed 命令中保留时间戳