首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >脚本自动关闭SSH隧道捕获指定端口号

脚本自动关闭SSH隧道捕获指定端口号
EN

Server Fault用户
提问于 2019-10-16 14:06:33
回答 1查看 92关注 0票数 0

一个脚本使用下面这样的简单命令在后台自动创建了一个SSH隧道,该命令工作如下:

代码语言:javascript
复制
ssh -R 19000:localhost:22 user@remote.com -i ~/.ssh/keyfile &

这个答案描述了如何设置动态分配的端口和重定向SSH的输出,以便我的脚本能够捕获端口。它也起作用:

代码语言:javascript
复制
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 &

另外,这篇文章提出了一种在特定时间后隧道自动关闭的方法,该方法也可以自己工作:

代码语言:javascript
复制
ssh -R 19000:localhost:22 user@remote.com -i ~/.ssh/keyfile sleep 10;

现在,我希望将它们合并成一行,但是在我的睡眠命令执行之前,隧道就会崩溃:

代码语言:javascript
复制
(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 &

输出被重定向,端口号按预期写入文件,但隧道立即关闭,睡眠命令运行。

请有人解释一下我在这个命令中做了什么/做错了什么,为什么它不起作用?

EN

回答 1

Server Fault用户

发布于 2019-10-16 14:43:39

尝试将初始SSH隧道发送到后台。添加fN选项'-fN‘

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/988257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档