我通过 fork/exec 从 OSX/Linux-C++-Application 调用 ssh (OpenSSH) 来创建动态端口转发。这是使用批处理模式(-o BatchMode=yes)和提供给 ssh 的私钥(-i 选项)完成的。SSH 调用本身不会打开外壳(-N 选项)。
这是我完整的 SSH 调用:
ssh -N -D 9000 -o BatchMode=yes -i /path/to/private-key user@host
Run Code Online (Sandbox Code Playgroud)
我想尽快继续我的申请,所以我必须找出 ssh 是否成功创建了频道。SSH 本身只有在出现问题时才会返回。
有没有可能如何检测成功的端口转发?
当然,我可以等到端口被 SSH 打开,但我正在寻找更优雅的解决方案。另一种解决方案是检查 SSH 的日志 (-v) 等待“进入交互式会话”,但这对我来说听起来不太便携。
| 归档时间: |
|
| 查看次数: |
932 次 |
| 最近记录: |