问题标签 [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 投票
2 回答
720 浏览

php - stream_context_set_params 不适用于 ssh2.sftp 包装器

我想使用这里的功能。请检查下面的代码

我希望我的 notify 函数至少会被调用一次。实际上,相同的代码适用于 ftp 包装器

它工作正常!通知函数被多次调用。我尝试像这样使用 sftp 包装器

而且它也不起作用。有任何想法吗?

0 投票
1 回答
2806 浏览

c - 如果密钥请求被接受,libssh2 公钥认证只需要密码

我正在使用libssh2使网络程序更安全。

我希望我的程序以与 OpenSSH 客户端 ssh(1) 尽可能相似的方式进行身份验证。OpenSSH 客户端只会询问服务器实际接受的密钥的密码。

正如我从这个链接中了解到的,一个 ssh 客户端发送一个使用公钥的请求,如果被接受,它可以使用密码解锁私钥。

libssh2 提供了一个函数libssh2_userauth_publickey_fromfile,它接受私钥和公钥文件名和密码。使用此功能非常简单,但这意味着我必须获取私钥的密码,即使服务器一开始就不会接受公钥。对于拥有许多不同密钥的用户来说,这显然是一个问题(我的程序目前遍历 ~/.ssh 目录中的密钥文件)。

我已经尝试阅读libssh2函数的手册页,如果没有更详细的 ssh 协议知识,它们中的大多数看起来太简短了,我无法理解。事实上,其中一些甚至还没有写出来。

谁能告诉我如何只提示 ssh 服务器实际接受的密钥的密码libssh2

0 投票
1 回答
15110 浏览

c++ - 找不到 libtoolize 和 glibtoolize

我正在尝试编译一个 .cpp 文件,但我必须安装 libssh2。我已经从 libssh2.org 下载了包,当我输入: ./buildconf 我得到:

libtoolize 和 glibtoolize 都找不到!

我不知道该怎么做,我已包含在头文件 libssh2.h ( #include ) 中,并且该文件确实存在于我拥有我正在尝试编译的源文件的同一文件夹中。

0 投票
0 回答
224 浏览

php - sftp 的交易是否有限制以及如何配置?

我已经使用了 sftp 连接ssh2.sftp的包装器。当我们为所有事务使用一个会话句柄时,在少数事务之后传输速度变得非常慢。但是重新连接后传输速度还可以。例子:

有什么方法可以在不重新连接的情况下解决问题?谢谢。

0 投票
8 回答
96705 浏览

php - PHP 在 Windows 机器上安装 SSH2

我正在尝试将其安装Windows+Apache机器上。文档说 SSH2 需要OpenSSLlibssh2库。我在我的php.ini文件中添加了这一行:

并重新启动了 Apache,但它仍然无法正常工作(Fatal error: Call to undefined function ssh2_connect())。

谁能解释我如何安装此服务?

0 投票
2 回答
81 浏览

ssh - 必须与任意服务器通信的程序需要多少 SSH v1 支持?

我正在开始一个新项目,这是一个跨平台的 C++ 程序,需要使用程序中内置的 SSH 代码连接到用户选择的服务器。我试图在libssh和之间做出决定libssh2。(许可不是问题;libssh的 LGPL 很好。)

libssh2从这个页面来看,似乎是要走的路——除了一个可能的例外。它不支持 SSH v1。我不知道现在有多少服务器可能只支持 SSH v1。有没有人在这方面有经验,或者可以指出我可以回答的问题?

或者,任何人都可以指出另一个支持 SSH v1 和 v2 的具有 SCP 功能的 SSH 库吗?最好是线程安全的并且还可以支持非阻塞操作?

0 投票
1 回答
258 浏览

php - ssh2 流包装器中的回调选项有什么作用?

http://www.php.net/manual/en/wrappers.ssh2.php

上下文选项之一是回调,但它旁边没有描述。事实上,它是唯一旁边没有描述的上下文选项。

有任何想法吗?

0 投票
1 回答
669 浏览

objective-c - 如何让套接字成为非阻塞的

我正在用 Objective-C 编写一个简单的 Redis 客户端应用程序。为了与服务器上的 Redis 通信,我需要通过 SSH 连接到服务器,然后打开 TCP 套接字来来回发送数据。我正在尝试遵循libssh2.org 中的一个示例,direct_tcpip.c并且我已经让它运行良好。我可以运行代码,它会说:

所以我然后尝试使用 telnet 与它通信:

我可以通过这种方式成功地与 Redis 连接和交互,是的!

现在下一步是让我能够以编程方式与服务器对话并从我的应用程序的 UI 向它发送命令,但是当我调用时程序被阻塞accept()并卡住等待连接进入。这是一个问题,因为我需要以编程方式连接到它,我似乎无法弄清楚如何做到这一点。

libssh2_session_set_blocking(session, 0);我之前试过打电话accept(),但这似乎并没有改变任何事情。

我的目标是设置转发,以便我的应用程序可以尽可能轻松地与远程 Redis 服务器通信,而且我对套接字编程完全陌生。我需要一个 SSH 隧道,因为 Redis 没有内置的安全性,建议您在内部与其通信。

感谢任何可以为我指明正确方向的人!

0 投票
0 回答
602 浏览

perl - Net::SSH2 模块如何知道连接的另一端已完成发送数据?

我使用 SSH2 模块已经有一段时间了,发现它工作得很好。我总是觉得困难的部分是告诉返回的数据何时完成。例如,我在互联网上找到的这段代码

这似乎“知道”何时到达流的末尾,因为一旦返回最后一行,它就会立即返回。我想知道的是它是如何知道数据已经完成的?提示没有返回,所以我猜它会寻找提示。如果其他东西返回一个看起来像提示的字符串会发生什么?它会停止吗?

0 投票
2 回答
2521 浏览

php - PHP - SSH2 SFTP 下载进度

我觉得这值得一个问题,因为 StackOverflow 似乎没有足够的主题。

我想使用带有进度条的 PHP 进行 SFTP

我喜欢进度条。然而,这一次我想做一些不同的事情。我想用 PHP 做以下事情,这个看起来比上一个要困难得多:

  • 通过 SFTP(通过 SSH?)执行下载
  • 为用户提供下载进度的可见指示
  • 启用暂停和继续下载

想想FileZilla,但在浏览器中,用 PHP 构建。我不想破解 Apache 或添加任何 Apache 模组。


实际下载的选项

对于基本的 SFTP 下载,这里这里这里这里有很多问题。

这些文档PHP 的 SSH2 扩展(我目前正在使用 - 你通过 pecl 安装它)和替代PHPSecLib,我没有使用,但可能会在以后查看。
我的界面允许轻松换入/换出 - 对接口进行编码而不是实现等......

这很好,但他们只是执行实际下载,仅此而已。

下载进度

PHP 有一个非常有趣的回调函数stream_notification_callback您可以在此处了解更多信息

这看起来很棒,并且是一个很有希望的步骤,直到有人查看了 PHP 的源代码并发现不幸的是,SSH2 / SFTP不允许与此集成
感谢 hek2mgl 努力研究这个

这个想法stream_notification_callback是在每次检索数据时传递当前下载大小的通知;因此给出了使用当前下载量和总文件大小计算百分比所需的数据。但这不适用于 SSH2 和 SFTP ......

那么暂停/继续呢?

在我看来,这将是最难完成的。将数据下载到临时文件是可能的......这是我设法挖掘的内容:http ://ee.php.net/manual/en/function.fread.php#84115 - 但是将这种代码与进度条似乎很疯狂。

最后

还有cURL,但是我没有看到通过SFTP尽可能暂停/恢复下载。如我错了请纠正我。

那么,我将如何使用 PHP 在浏览器中集成上述要求?忘记客户端的东西,只需将数据发送到浏览器就足够了,因此执行此操作的建议会很棒。