Bash - 知道是否已正确创建SSH隧道

时间:2016-12-20 20:41:00

标签: linux bash ssh

这是情况

我的计算机名为MY_COMPUTER一台名为REMOTE_VM的计算机,我的用户remoteuser位于/etc/passwd shell /bin/false

此用户只有一个功能,在通过反向SSH后可以执行SSH隧道。

我目前使用的命令是

ssh \
   -nNT \
   -R 42242:127.0.0.1:22 \
   remoteuser@REMOTE_VM

我希望这个命令在脚本中执行,并且有办法获得回调或方式(比如将这个ssh命令放在后台并定期检查是否存在套接字文件或类似的东西)检查连接是否已实际打开,而不是在网络速度慢的情况下暂挂连接。

openssh-client是否有这样的方法,或者您必须使用ssh客户端的自定义实现,以便您可以随时进行回调?

我更希望尽可能使用普通的openssh-client和bash(甚至是脏的)解决方案。

1 个答案:

答案 0 :(得分:1)

运行命令verbosely,捕获输出,然后测试输出是否表明会话已建立?沿着:

live

或者,也许您可​​以轮询live的输出。