多跳,自闭,背景SSH隧道

时间:2018-02-08 21:17:37

标签: linux bash shell 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隧道的任何想法?谢谢!

1 个答案:

答案 0 :(得分:0)

对于自我关闭,可以使用简单的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小时并在此之后自行关闭。