【问题标题】:Perform a SSH connection with Windows API in C/C++?在 C/C++ 中使用 Windows API 执行 SSH 连接?
【发布时间】:2013-01-30 11:01:17
【问题描述】:

我目前有两个应用程序,一个在 Windows 上,一个在 Linux 上。 他们需要一起工作(他们之间有socket交互等等)。

我只需要制作一个应用程序,但我仍然需要在 linux 端进行操作。

我正在寻找的是 Windows 中可用的一些 API 来打开 SSH 连接(我认为 telnet 连接也可以,但不确定),并通过它发送一些命令到我的 Linux PC(开始发送一些东西)。

我一定会在 C/C++ 的 VS2005 上使用 Windows API。 我用了一点plink,它非常好用,但我无法通过第三方安装使其工作。

非常感谢您的帮助。

【问题讨论】:

  • 腻子呢? mingw 添加图形(但更难设置)
  • @xhudik,plink(如问题中所述)是 PuTTY 套件的一部分。
  • 我已经成功地“库化”putty 以使用我的 Win32 C/C++ 应用程序。它不是即插即用的——我必须编写一些胶水代码,但能够仅导入 putty 的 ssh/rlogin/telnet/socket 部分以用作静态库。
  • 正如我所提到的,我不能在我的解决方案中真正使用第三方应用程序/库(很遗憾)。腻子可能没问题,因为它在每台 PC 上几乎都是强制性的。如何将命令分派给 putty(类似于 plink)。我坚持这样做的原因是因为当 Putty 是可以在此处的任何 PC 上找到的东西时,我不能强迫人们获取 plink(即使它可以从 PUTTY 站点下载)。
  • PuTTY 是用于用户交互的 GUI 应用程序,PLink 用于程序控制。试图以相反的方式强迫他们并不容易。另外,如果 PuTTY 是标准的,它是如何安装的?如果通过安装包,那么它包括 PLink。如果仅仅通过分发可执行文件,您将很难尝试对其进行优化。

标签: linux windows winapi ssh telnet


【解决方案1】:

我自己没有使用过这个,但libssh 看起来很适合你。

【讨论】:

  • 除非我弄错了,否则 libbsh 是第三方库。正确的?我不能用这些:(
  • 没有“开箱即用”的 API 可以做到这一点。这就是人们构建这些 SSH 库和应用程序的原因。 libssh 具有您可以获得的最小占用空间增量,可以满足您的需求。另一种方法是自己重写所需的函数,或者破解一些现有的公共域代码以将所需的位放入代码库。到那时,您必须问自己,禁止 3rd-party 库是谁的愚蠢想法?
【解决方案2】:

Windows 中没有本地 SSH 客户端(或库)。如果您不想从头开始,那么我会再次查看 PuTTY 及其相关程序。这些可以与您的应用程序一起分发,因此不需要额外的安装。它也是开源的,因此(取决于许可)您可以重用/移植一些代码)

【讨论】:

    【解决方案3】:

    您可以在http://www.chilkatsoft.com/ssh-features.asp 上查看 ChilkatSoftware,他们为 Windows 提供了 SSH API。

    【讨论】:

      猜你喜欢
      • 2014-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-04
      • 2011-07-29
      相关资源
      最近更新 更多