多跳、自关闭、后台 SSH 隧道

Multi Hop, Self Closing, Background SSH Tunnel

我正在尝试创建一个多跳 ssh 隧道,该隧道位于后台并自动关闭。我有的是...

ssh -L 9999:localhost:9999 user@host1 -t ssh -L 9999:localhost:27017 -N 
-i ./mypem.pem user@host2

这成功创建了一个多跳 ssh 隧道,在我关闭隧道后关闭了 host1 上的端口。但是,如果我尝试将它分叉到后台,就像这样...

ssh -f -L 9999:localhost:9999 user@host1 -t ssh -L 9999:localhost:27017 
-N  -i ./mypem.pem user@host2

它在后台运行,但在本地终止进程确实会在主机 1 上重新打开端口。

关于自关闭、多跳、后台 ssh 隧道的任何想法?谢谢!

对于自动关闭,可以使用一个简单的sleep X命令。

$ ssh -f -L 9999:localhost:9999 user@host1 \
-t 'ssh -L 9999:localhost:27017 -i ./mypem.pem user@host2 "sleep 3600"'

请注意,这不使用 -N 选项,该选项用于 而不是 运行 命令,相反,我们 运行 命令 sleep 3600。这会使隧道保持运行 1 小时,然后自动关闭。