问题标签 [libssh2]

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 回答
521 浏览

linux - 如何使用 libssh2 重定向程序输出?

我在 Linux 环境中将 libssh2 用于 C++ 程序,到目前为止,我可以使用libssh2_channel_exec. 但是,我想将程序的输出重定向到本地机器(即输出将通过 ssh 传输)。我想实现以下 bash 行的相同目标:

$ ssh user@remote ls > local_file.txt

我无法指定参数的> local_file.txt部分,command因为文件必须写入本地机器而不是远程机器。

那么,如何将远程程序的输出重定向到本地机器呢?

0 投票
2 回答
6002 浏览

linux - 带有 libssh2 的 libcurl - 链接时可用的一个或多个库在运行时不可用

尝试 ./configure libcurl 7.22.0 时出现以下错误

链接时可用的一个或多个库在运行时不可用。链接时使用的库:-lssh2 -lssl -lcrypto -lrt -lz

当我使用--without-libssh2 进行./configure 时,它​​工作得很好。

我已采取的步骤:

顺便说一句,SSL 支持工作正常。我一定是在 libssh 上做错了什么

我也试过:

但这并没有什么不同。我不知道还能尝试什么。

0 投票
1 回答
977 浏览

c++ - 诊断 libssh2 SFTP 阻塞调用

我正在使用 libssh2 的最新 Git 树来执行一些 SFTP 工作。我正在使用非阻塞接口。

我已成功建立与 SFTP 服务器的连接、登录和传输文件。

但是,我遇到了一个问题,即对libssh2_sftp_write(sftp_handle, ptr, nread)plain 的调用挂起。这总是在传输 237115172 字节数据后发生。
虽然有效载荷小于这个数字,但事情进展得很好。

我正在传输多个文件。我对整个事务使用单个 SSH 会话(和单个套接字)。任何人都可以提出解决这个问题的方向吗?神奇的数字 237115172 是一个提示,但它对我来说还没有任何意义。我可能做错了什么?

这是直接来自 libssh2 示例的代码:

我可以发布完整的源代码,但是它很长,而且由于它是 QT 应用程序的一部分,因此需要花费一些精力才能撕掉。

0 投票
1 回答
1698 浏览

windows - 如何让线程安全的 libssh2 在 Windows 下链接?

我正在开发一个使用 libssh2 的多线程多平台基于 Qt 的程序。当几个使用 SSH 的线程同时处于活动状态时,该程序偶尔会在 crypt_encrypt() 和 libssh2_transport_write() 内部崩溃,所以我四处搜索,发现一些页面说要使多线程 libssh2 可靠地工作,我需要调用 CRYPTO_set_locking_callback(),等,在使用 libssh2 之前。

基于该建议,我将指定的回调设置调用添加到 main() 的顶部,并使其全部编译和运行,而不会在 MacOS/X 下崩溃……但在 Windows 下,我现在收到以下链接错误不知道如何解决。

Microsoft (R) Windows (R) 资源编译器版本 6.1.6723.1 版权所有 (C) Microsoft Corporation。版权所有。链接... main.obj:错误LNK2019:函数“void __cdecl do_crypto_locks_setup(void)”(?do_crypto_locks_setup@@YAXXZ)中引用的未解析的外部符号_CRYPTO_set_locking_callback main.obj:错误LNK2019:函数“void __cdecl”中引用的未解析的外部符号_CRYPTO_malloc do_crypto_locks_setup(void)" (?do_crypto_locks_setup@@YAXXZ) main.obj:错误 LNK2019:未解析的外部符号 _CRYPTO_num_locks 在函数“void __cdecl do_crypto_locks_setup(void)”中引用(?do_crypto_locks_setup@@YAXXZ) main.obj:错误 LNK2019:未解析的外部函数“void __cdecl do_crypto_locks_cleanup(void)”中引用的符号 _CRYPTO_free (?do_crypto_locks_cleanup@@YAXXZ)

有没有人知道我可能需要做什么才能在 Windows 下链接这些调用?是否需要链接其他一些 .lib 文件,或者我是否需要将特定标志传递给“perl Configure VC-WIN32”命令以启用这些功能,或者???

谢谢,杰里米

0 投票
1 回答
1211 浏览

ios - 在 iOS 应用程序上使用 libssh2 更改目录“cd”

我想实现类似 Mac 的终端应用程序,但适用于 iOS。我设置了 libssh2,一切正常。

我运行“ cd Test ”命令,其中 Test 是工作目录中的一个文件夹。然后如果我运行:“ pwd ”,它会告诉我 cd 命令没有改变目录。

但是,如果我运行:“ cd Test; pwd ”,它将显示它已更改目录。

我明白为什么会这样,最好在这里解释: ssh2_exec() wont change directory :(

我的问题:解决方案是什么?我希望能够像在终端中一样运行它,就像在一个大外壳中一样,它不会在每个命令之后死掉。这可能吗?每次更改目录都会杀死用户,然后做你想做的事。为什么如果目录更改一次,在新的 cd 出现之前不会保持更改?我怎样才能做到这一点?

谢谢大家。

编辑:

这是我的方法:

0 投票
1 回答
4663 浏览

c++ - 无法使用 libssh2 编译

我从他们的网站下载并安装了最新的libssh2到该位置/usr/src/libssh2-1.4.0

我试图构建示例目录中可用的示例程序(ssh2.c)之一。make当我用from /usr/src/libssh2-1.4.0/exampleas编译时

,它编译并运行得很好。然后我将程序复制ssh2.c到不同的路径(~/Projects/precious/)并发出命令

当我尝试运行该程序时,它会向我打招呼以下消息

我也尝试将它简单地编译为

反应都是一样的。

我也尝试编译为

但没有任何运气。请建议

0 投票
3 回答
8752 浏览

php - SSH2 PHP 扩展

我一直在尝试在我的 CentOS 5.6 x64 服务器上安装 php 的 SSH 2 扩展。我从头开始启动服务器,这是我采取的步骤

  1. 安装和配置 APF
  2. 安装阿帕奇
  3. 安装php
  4. 安装mysql
  5. 添加 epel 存储库
  6. 安装 php-pear 这样我就可以使用 pecl
  7. 运行 yum install libssh2-devel
  8. 运行 pecl install ssh2-beta
  9. echo extension=ssh2.so>>/etc/php.ini (里面有一些额外的东西,比如安装 phpMyadmin 和 wordpress)

在此之后,我运行 php -m 来查看 php 模块并且 ssh2 未列出。我一直在寻找教程并找到了一些,但据我所知,我已经正确地完成了所有操作。谁能看到我哪里出错了。我可以提供您可能需要的任何配置文件。我也听说过 phpseclib,想知道这是否是一条更容易/更好的路线?任何帮助将不胜感激!

0 投票
1 回答
2829 浏览

php - 使用 sftp 上传文件时如何修复 PHP curl 错误 CURLE_SSH (79)

我正在尝试在我的 PHP 应用程序上重现以下命令以通过 sftp 上传文件:

上面的命令工作得很好(不过,我必须在我的 ubuntu 机器上重新编译 libcurl 才能使其工作)。然而,当我尝试使用 PHP 的 curl 库时,事情对我来说并不顺利。

我正在使用的代码如下:

这会返回错误 79:CURLE_SSH (79),我不知道如何修复。你遇到过这个问题吗?你怎么修好它的?有任何想法吗?

谢谢!

0 投票
2 回答
632 浏览

php - 使用 ssh2_exec 在 PHP 脚本中转义引号

我需要一些帮助来转义这个脚本中的引号,我在上面和下面都有代码,但它与此无关,因为如果我只是发出一个 screen -d -m -S minecraft,它会创建一个很好的。任何帮助都会很棒,因为我已经尝试了一个小时,谢谢!

0 投票
3 回答
4490 浏览

c - 从 libssh2 获取未定义的引用

我在我的 Ubuntu linux 上安装了 libssh2 库。编译 C 代码时,我收到此消息:

对“libssh2_session_init_ex”的未定义引用

我从他们的网站下载了 libssh2。我按照如何在我的计算机上安装它的说明进行操作,但似乎我仍然缺少一些东西。

这是我的make文件中的代码:

C 代码的包含部分:

首先十分感谢

笔记 :

我使用了这条新线:

但仍然存在相同的编译错误。顺便说一句,我被告知还要安装 libssh2-devel,但我不知道该怎么做。

谢谢