如何在C/C++跨平台上以编程方式创建ssh隧道?

Nek*_*ios 16 c linux windows ssh ios

我需要通过TCP连接到防火墙后面的端口,可以通过SSH隧道访问.我可以通过打开隧道并点击该端口来实现连接,但我想在我的应用程序中构建这个隧道.

此外,我希望能够通过在服务器上使用授权密钥来提供自动登录

这必须适用于以下平台(按重要性顺序)

  • iOS(最棘手的是因为我无法像其他平台那样分叉ssh隧道)
  • OS X.
  • Linux的
  • 视窗

这样做的简单方法是什么?我不想花费很多精力,因为这不是我应用程序的核心.但我会重复使用它,所以我可能会关心"做正确的事情"

Nek*_*ios 6

但libssh2是BSD许可的,似乎具有所需的功能

看起来像:libssh2_channel_direct_tcpip_ex将是通话

请注意,LGPL的libssh是一个问题,因为在iOS应用程序上,您必须静态链接,并且不能动态链接到库.因此,使用LGPL的库意味着我的源代码变为开源.