标签: libssh2

PHP在Windows机器上安装SSH2

我想在机器上安装Windows+Apache.文档说SSH2需要OpenSSLlibssh2库.我在我的php.ini文件中添加了这些行:

extension=php_openssl.dll
extension=php_ssh2.dll
Run Code Online (Sandbox Code Playgroud)

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

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

谢谢

ps:我是意大利人,对不起我的英语......

php windows apache dll libssh2

18
推荐指数
5
解决办法
8万
查看次数

使用Libssh2 C++进行SSH公钥认证

我正在开发一个项目,我正在使用C++中的libssh2将端口转发到MySQL.我已经使用它进行用户名/密码验证,但我现在想要使用公钥/私钥验证.libssh2的文档很差,所以我很难解决我需要做的事情.

我想要做的是让一个Android应用程序将数据发布到我的C++应用程序,其中C++将获得SSH详细信息以及auth密钥,并创建SSH隧道.C++正在获得关键,然后我正在执行以下操作来进行公钥认证.

else if (this->getAuthMethod() == SupportedAuthMethods::AUTH_PUBLICKEY)
    {

        string test = this->getSSHPrivateKey();

        boost::replace_all(test, "\n", "");

        unsigned char * key = (unsigned char *)test.c_str();

        size_t sizeofkey = strlen((char*)key);
        cout << key << endl;
        stringstream logstream;
        logstream << "Using public key authentication for SSH Host: " << this->getSSHHostnameOrIPAddress();
        this->bitsLibrary->writeToLog(logstream.str(), "SSHTunnelForwarder", "authenticateSSHServer");
        if (chosenAuthMethod & SupportedAuthMethods::AUTH_PUBLICKEY)
        {
            //int result = 0;
            int result = libssh2_userauth_publickey(this->session, this->getUsername().c_str(), key, sizeofkey, SSHTunnelForwarder::publicKeyAuthComplete, 0);
            if (result != 0)
            {
                char * error = NULL;
                int len = …
Run Code Online (Sandbox Code Playgroud)

c++ ssh public-key libssh2 private-key

17
推荐指数
1
解决办法
1661
查看次数

无论是libtoolize还是glibtoolize都找不到

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

无论是libtoolize还是glibtoolize都找不到!

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

c++ linux ssh compilation libssh2

15
推荐指数
1
解决办法
1万
查看次数

使用PHP和私钥连接到SFTP

我已经阅读了一篇文章,并且找不到适用于我所拥有的"解决方案".

我正在尝试使用php脚本通过SFTP上传文件.我已成功使用Cyber​​Duck连接,但我需要以编程方式执行此操作.

我有一个来自我在Cyber​​Duck中使用的供应商的.PPK文件.我有一个用户名.我有主机名.如果我打开PPK文件,我会看到一些公共线路,专线和私有MAC.

无论如何我可以使用我的信息访问服务器以执行我需要做的事情吗?

这是我正在玩的代码:

<?php if (!function_exists("ssh2_connect")) die("function ssh2_connect doesn't exist");
?>
<?php
$conn = ssh2_connect('hostname.com', 22);
echo $conn;
ssh2_auth_pubkey_file($conn,'USERNAME','/var/www/html/FILENAME.PPK');

// send a file
ssh2_scp_send($conn, '/var/www/html/FILETOSEND.TXT', 'FILETOSEND.TXT', 0644);
?>
Run Code Online (Sandbox Code Playgroud)

我没有收到任何错误,但文件没有显示在服务器上.我可以确认我的webhost上安装了SSH2.

感谢您的任何帮助,您可以提供.

php sftp libssh2

13
推荐指数
1
解决办法
1万
查看次数

在iOS上使用libssh2反向端口转发

我正在使用libssh2在iOS上寻找一个反向端口转发的示例代码.这是一个接近的例子:

libssh2的示例代码用于端口转发

但我希望它可以根据iOS和Objective-C进行定制.直C也很好.我对socket和FD代码持谨慎态度,宁愿拥有一个比我正在攻击的解决方案更强大的解决方案.我已经尝试了一段时间的RTFMing libssh2,但它最终只是RTF代码...而且我对我的C代码没有足够的信心去做这个网络部分.

编辑:在iOS 4.3(例如iphone4,ipad2)上进行端口转发的ssh工作实现的赏金,不需要libssh2具体.

c ssh objective-c ios libssh2

9
推荐指数
1
解决办法
1698
查看次数

PHP ssh2_connect()实现超时

我正在使用PHP ssh2库,只是做:

$ssh = ssh2_connect($hostname, $port);
Run Code Online (Sandbox Code Playgroud)

问题是我想设置超时,即5秒后停止尝试连接.据我所知,ssh2库本身不支持连接超时.如何实现超时包装?

php libssh2

8
推荐指数
2
解决办法
8824
查看次数

PHP - SSH2 SFTP下载与进展

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

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

我喜欢进步吧.但是,这次我想做一些不同的事情.我想用PHP做以下事情,这个看起来比上一个难得多:

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

想想FileZilla,但是在浏览器中,用PHP构建.我不想破解Apache或添加任何Apache mod.


实际下载的选项

有很多的问题,在这里,这里,这里这里的基本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在浏览器中集成上述需求?忘记客户端的东西,只需将数据传输到浏览器就足够了,所以建议执行此操作会很棒.

php sftp libssh2

7
推荐指数
1
解决办法
2100
查看次数

libssh2 SFTP流水线处理多个文件:sftp_read()内部错误

我正在尝试重现一个问题,其中某些客户端在使用SFTP协议下载时会收到错误的文件内容。

根据我们的SFTP服务器(CrushFTP)日志,他们可能会在一个会话中打开多个文件,然后使用一些流水线来下载文件。我不知道他们使用哪种类型的库,因为他们为此使用了一些SAAS提供程序。

我正在尝试使用libssh2重现此行为,但是sftp_read() internal error在第一个打开文件异步返回LIBSSH2_ERROR_EAGAIN后,在第二个打开的文件上异步调用libssh2_sftp_read时,即使在本地主机连接到OpenSSH时,也遇到了问题。

在浏览SSH文件传输协议IETF草案时,我可以看到该协议允许同时打开多个文件并使用多个SSH_FXP_READ请求请求其内容,而无需等待响应。

以下是我用于测试的代码(SSCCE,但是很长-C非常冗长)-使用以下代码进行编译gcc sftp_multifile.c -lssh2 -Wall -g -o sftp_multifile和测试:

./sftp_multifile localhost 22 testusername testpassword /usr/share/dict/words /usr/share/doc/words/readme.txt

connect try: ai_family=10 ai_socktype=1 ai_protocol=6 addr=::1 port=22
opening: /usr/share/dict/words
opening: /usr/share/doc/words/readme.txt
reading: /usr/share/dict/words from 10134400 to 140736927200896
read result: -37
reading: /usr/share/doc/words/readme.txt from 10135536 to 140736927201920
read result: -31
Bad read result: -31
Read error: /usr/share/doc/words/readme.txt: sftp_read() internal error
Run Code Online (Sandbox Code Playgroud)

我是否在代码中出错了?或者libssh2是否仅不支持对多个打开的文件进行libssh2_sftp_read管道传输?或者可能只是libssh2中的错误应报告给其维护者?

#include <libssh2.h>
#include <libssh2_sftp.h>

#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
#include <stdio.h>
#include <stdlib.h> …
Run Code Online (Sandbox Code Playgroud)

c libssh2

7
推荐指数
1
解决办法
181
查看次数

PHP扩展已安装但未加载

我正在尝试安装php的ssh2扩展,并且有点困难。该文件在那里,它只是没有加载到php中。

首先,我安装了ssh2:

 aptitude install libssh2-1-dev libssh2-php
Run Code Online (Sandbox Code Playgroud)

(对于它的价值,我在Nginx上运行Ubuntu 12.04。)

我可以看到ssh2是使用modules命令加载的:

php -m |grep ssh2
ssh2
Run Code Online (Sandbox Code Playgroud)

但是,当我运行代码时,出现未定义的函数错误。

在我的phpinfo()脚本中,我可以看到我的php安装程序在此目录中扫描了其他ini文件:/etc/php5/fpm/conf.d。列出该目录的内容,我可以看到我的ssh2.ini在那里:

ls /etc/php5/fpm/conf.d
mysqli.ini  mysql.ini  pdo.ini  pdo_mysql.ini  ssh2.ini  
Run Code Online (Sandbox Code Playgroud)

再次根据phpinfo,将加载其他四个ini文件。SSH2不是。

我还尝试将“ extension = ssh2.so”直接放置在我的php.ini文件-/etc/php5/fpm/php.ini中。是的-我已经重新启动了Nginx服务器。

我还有其他东西吗?

php ubuntu nginx libssh2

6
推荐指数
1
解决办法
1万
查看次数

libssh 与 libssh2 的主要区别是什么?

我在 google 上搜索了 "libbssh vs libssh2" ,找不到关于它们之间区别的很好的解释。

主要区别是什么?

我需要的主要功能是复制文件,推荐使用哪个库?

libssh libssh2

6
推荐指数
2
解决办法
3031
查看次数

标签 统计

libssh2 ×10

php ×5

ssh ×3

c ×2

c++ ×2

sftp ×2

apache ×1

compilation ×1

dll ×1

ios ×1

libssh ×1

linux ×1

nginx ×1

objective-c ×1

private-key ×1

public-key ×1

ubuntu ×1

windows ×1