问题标签 [libssh]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
545 浏览

iphone - 将静态库附加到 iphone/ipad 应用程序

将静态库包含到 iPhone 或 iPad 应用程序中的最佳方法是什么?

我可以选择

  • 编译提供正确平台的库并使用实用程序构建库文件,ar然后将其作为框架添加到项目中
  • 包括库 .c/.h 的源代码并将它们与应用程序一起编译

第一种方法似乎更简单,因为我不关心管理我想要包含的库的所有特定设置,但是如何为 iPhone 和 iPad 创建库并允许 xcode 在链接时使用正确的库?

第二种方法似乎更复杂,因为 xcode 将负责编译我的应用程序和库(我想使用不同的设置)那么我应该怎么做?我可以轻松地添加 lib 的源代码,但我必须包含 make 脚本以允许 xcode 使用它们以正确的方式构建。

关于如何进行的任何建议?我要包含的库是libssh。(我知道这个库,当然已经在 iPhone 上编译并成功尝试过了)

提前致谢。

0 投票
2 回答
4129 浏览

c++ - 在 linux 上编译外部库的问题

所以我试图在 linux 上编译 libssh2 库,但是当我尝试编译示例时,它会出现很多错误,即使我包含了它要求的头文件,它仍然会要求它。以下是错误消息和结果消息:

这是新的错误:

0 投票
1 回答
1000 浏览

c - libssh2 通道 SSL BIO 使用情况

我正在为自己的娱乐编写一个小型 ftp 项目,假设它能够做 4 件事:

  1. 直接连接到 ftp
  2. 使用 SSL(包装器)直接连接到 ftp
  3. 通过 ssh 隧道连接到 ftp
  4. 通过 ssh 隧道连接到具有 SSL 的 ftp。

我正在用普通 C(unix,在这种情况下并不重要)编写我的程序,使用标准库作为 1 和 2,使用 libssh2 作为 3 和 4,除了 OpenSSL 用于 2 和 4。

我可以让 1-3 个工作,但不是 4 个。这就是我所在的位置:

  1. 通过打开一个套接字到主机:端口,连接,从套接字写入/读取来完成。
  2. 通过打开一个套接字到主机:端口,连接,写入“AUTH SSL”,使用来自先前套接字的 BIO 启动一个 SSL 对象 -> SSL_connect()、SSL_read()、SSL_write()。
  3. 通过在目标和本地主机之间打开一个隧道来完成(尽管我不确定我在我的 approac 中使用本地主机绑定:)

就像是:

然后我写入/读取该通道(libssh2_channel_read()) - 正如我所看到的,它给出了以下流程:纯文本 - > 通过 ssh 发送 - > 从 ssh 主机将纯文本传递到目标。出于 3. 的目的,这很好并且可以完成工作。

现在,对于 4。我被卡住了,因为我(试图保持简单)需要以某种方式将此通道变成一个套接字。所以我看到它的方式有两个选择:

  • 一个。制作一个伪套接字,每次我需要读/写时,我从通道读/写,将其发送/检索到套接字中,并让 SSL_connect(pseudo_socket) 与我的伪套接字通信,每次接收 ssl_write 发送的内容,将其发送到频道,反之亦然。

或者

  • 湾。设置一个 BIO 缓冲区(有更多的 BIO 功能,我无法理解;文档并没有完全有帮助)并以某种方式读/写它。

理想情况下,我会选择 2,原因是:由于我的项目是用 C 编写的,因此在执行其他代码时维护一个套接字读/写将变得比我想要的要复杂一些。

然而,B。给出一个问题:我担心握手会如何工作;特别是我担心我最终会与 localhost 而不是 remotehost 握手。

总结一下我的问题:我可以通过通道在 SSL 中读/写(在其周围放置一个包装器),以便 4. 的流程变为:纯文本 -> SSL(明文) -> 通过 ssh -> 提供 SSL (明文)从 ssh 主机到目标主机?

有点长,但我希望它是可以理解的。如果没有,请告诉我,我会澄清的。从谷歌搜索/搜索stackoverflow看来,是我和一个使用mysql的人遇到了同样的问题,而且答案有限。

非常感谢任何输入!

  • 詹姆士
0 投票
1 回答
663 浏览

linux - libssh2_channel_close 将被阻塞,直到远程命令退出

我使用 libssh2 登录远程计算机,然后调用 libssh2_channel_exec 执行守护程序,守护程序将选择一个可用的 tcpip 端口并将选择的 prot 打印到控制台(stdio)。然后,守护进程将监听传入连接的端口。在这些步骤之后,客户端将通过“libssh2_channel_read”从 stdio 读取选定的 tcp 端口。我可以得到正确的值。但问题是:当我关闭 libssh2 通道(libssh2_channel_close())时,程序将被阻塞,直到远程程序退出。有什么方法可以在不关闭远程程序的情况下关闭频道?因为我仅将 ssh 用于登录名和可用的 prot 编号,所以这就够了。

另外,远程程序使用Qt的QCoreApplication,打印出可用的prot后,会进入app.exec()的事件循环响应客户端,所以打印完端口号后不能立即退出。

0 投票
2 回答
2432 浏览

iphone - 将静态 libssh2 库编译为 i386 时,它始终返回 x86_64 库

现在已经为此工作了几个小时,因此任何见解都将不胜感激。

我正在尝试为 OS X 上的 iPhone 模拟器编译 libssh2(我已经为设备成功编译了它)。

我正在使用以下环境变量和命令:

生成的 dylib 显示为 x86_64,当尝试在 iPhone 应用程序中使用静态库 .a 文件时显示为 libssh2.a,该文件是为不受支持的文件格式构建的,该文件格式不是所链接的体系结构 (i386)。

libgcrypt 和其他必需的库都已编译,没有问题。

提前致谢!

0 投票
2 回答
2228 浏览

iphone - 谁可以为 iPhone 构建 libssh2.a

谁能为 iPhone 构建一个 libssh2.a
这是关于交叉编译的东西 我完全不知道如何正确设置它

我要使用的是 iPhone 上的 sftp 客户端

有人这样做吗?你能分享一下吗?

0 投票
2 回答
2484 浏览

iphone - armv6和i386有什么区别?

我正在尝试将 libssh2.dylib(由 Matthew Wilkinson 使用来自http://www.libssh2.org的 libssh2 库编译的第 3 方库)链接到我的 xcode 项目,但是当我尝试以下代码时:

这是我得到的错误:

当我尝试任何 libssh2 API 时出现此错误。任何人有任何线索的问题是什么?这些是我链接到项目的文件:

我还将 libssh2.dylib 文件链接到框架,并将构建选项卡上的“搜索头文件”的递归路径添加到文件 libssh2.a、libgcrypt.a、libgpg-error.a。

0 投票
1 回答
4186 浏览

iphone - Dyld:库未加载

我正在尝试将库 libssh2.1.dylib 链接到我的 iPhone Xcode 项目,但是当我尝试链接它时出现此错误。如果我不将此添加为框架,则会收到 Symbols not found 错误。现在 /Users/Matt/Documents/Development/iPhoneApps/Portscanner/lib/libssh2.1.dylib 不是该文件的正确路径。我从互联网上下载了图书馆及其作者计算机的路径。我的文件位于完全不同的地方。如何更改路径参考?这是我得到的错误:

0 投票
1 回答
3471 浏览

php - phpseclib 与 libssh2

在我的一个项目中,我将使用 PHP 通过 SSH 远程连接许多服务器。它有两种解决方案,phpseclib和基于 libssh2 库的ssh2 PECL Extension for PHP。

那么任何人都可以比较两者并提及它们的优缺点等吗?

0 投票
1 回答
495 浏览

iphone - 为 iPhone 编译 libssh2 失败

目前我正在尝试编译 libssh2 以在 iPhone 上运行。

在我的研究中,我发现了如何编译它的那些说明。但是当我尝试它时,我总是得到

configure: error: C preprocessor "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/cpp" fails sanity check

有什么想法有什么问题吗?或者任何已经编译过 libssh2 的人都可以为我上传编译过的文件吗?