问题标签 [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.
php - stream_context_set_params 不适用于 ssh2.sftp 包装器
我想使用这里的功能。请检查下面的代码
我希望我的 notify 函数至少会被调用一次。实际上,相同的代码适用于 ftp 包装器
它工作正常!通知函数被多次调用。我尝试像这样使用 sftp 包装器
而且它也不起作用。有任何想法吗?
c - 如果密钥请求被接受,libssh2 公钥认证只需要密码
我正在使用libssh2
使网络程序更安全。
我希望我的程序以与 OpenSSH 客户端 ssh(1) 尽可能相似的方式进行身份验证。OpenSSH 客户端只会询问服务器实际接受的密钥的密码。
正如我从这个链接中了解到的,一个 ssh 客户端发送一个使用公钥的请求,如果被接受,它可以使用密码解锁私钥。
libssh2 提供了一个函数libssh2_userauth_publickey_fromfile
,它接受私钥和公钥文件名和密码。使用此功能非常简单,但这意味着我必须获取私钥的密码,即使服务器一开始就不会接受公钥。对于拥有许多不同密钥的用户来说,这显然是一个问题(我的程序目前遍历 ~/.ssh 目录中的密钥文件)。
我已经尝试阅读libssh2
函数的手册页,如果没有更详细的 ssh 协议知识,它们中的大多数看起来太简短了,我无法理解。事实上,其中一些甚至还没有写出来。
谁能告诉我如何只提示 ssh 服务器实际接受的密钥的密码libssh2
?
c++ - 找不到 libtoolize 和 glibtoolize
我正在尝试编译一个 .cpp 文件,但我必须安装 libssh2。我已经从 libssh2.org 下载了包,当我输入: ./buildconf 我得到:
libtoolize 和 glibtoolize 都找不到!
我不知道该怎么做,我已包含在头文件 libssh2.h ( #include ) 中,并且该文件确实存在于我拥有我正在尝试编译的源文件的同一文件夹中。
php - sftp 的交易是否有限制以及如何配置?
我已经使用了 sftp 连接ssh2.sftp的包装器。当我们为所有事务使用一个会话句柄时,在少数事务之后传输速度变得非常慢。但是重新连接后传输速度还可以。例子:
有什么方法可以在不重新连接的情况下解决问题?谢谢。
php - PHP 在 Windows 机器上安装 SSH2
我正在尝试将其安装在Windows+Apache
机器上。文档说 SSH2 需要OpenSSL
和libssh2
库。我在我的php.ini
文件中添加了这一行:
并重新启动了 Apache,但它仍然无法正常工作(Fatal error: Call to undefined function ssh2_connect()
)。
谁能解释我如何安装此服务?
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 没有内置的安全性,建议您在内部与其通信。
感谢任何可以为我指明正确方向的人!
perl - Net::SSH2 模块如何知道连接的另一端已完成发送数据?
我使用 SSH2 模块已经有一段时间了,发现它工作得很好。我总是觉得困难的部分是告诉返回的数据何时完成。例如,我在互联网上找到的这段代码
这似乎“知道”何时到达流的末尾,因为一旦返回最后一行,它就会立即返回。我想知道的是它是如何知道数据已经完成的?提示没有返回,所以我猜它会寻找提示。如果其他东西返回一个看起来像提示的字符串会发生什么?它会停止吗?
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 在浏览器中集成上述要求?忘记客户端的东西,只需将数据发送到浏览器就足够了,因此执行此操作的建议会很棒。