一个脚本使用下面这样的简单命令在后台自动创建了一个SSH隧道,该命令工作如下:
ssh -R 19000:localhost:22 user@remote.com -i ~/.ssh/keyfile &这个答案描述了如何设置动态分配的端口和重定向SSH的输出,以便我的脚本能够捕获端口。它也起作用:
ssh -R 0:localhost:2222 user@remote.com -i ~/.ssh/keyfile 3>&1 1>&2 2>&3 | sed -n "s/^Allocated port \([0-9]*\) for/port \0/p" > portfile.txt &另外,这篇文章提出了一种在特定时间后隧道自动关闭的方法,该方法也可以自己工作:
ssh -R 19000:localhost:22 user@remote.com -i ~/.ssh/keyfile sleep 10;现在,我希望将它们合并成一行,但是在我的睡眠命令执行之前,隧道就会崩溃:
(ssh -R 0:localhost:22 user@remote.com -i ~/.ssh/keyfile 3>&1 1>&2 2>&3 "sleep 1" | sed -n "s/^Allocated port \([0-9]*\) for remote forward to localhost:2222/\1/p" > portfile.txt); sleep 10 &输出被重定向,端口号按预期写入文件,但隧道立即关闭,睡眠命令运行。
请有人解释一下我在这个命令中做了什么/做错了什么,为什么它不起作用?
发布于 2019-10-16 14:43:39
尝试将初始SSH隧道发送到后台。添加fN选项'-fN‘
https://serverfault.com/questions/988257
复制相似问题