我想要的是如下:
我知道我可以在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隧道将不会退出我的终端。
答案 0 :(得分:2)
这里有一个聪明的解决方案:
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结束时,隧道应该自动关闭。