1

我正在尝试在 php 中进行 ssh 连接。但我收到此错误无法启动 sftp 子系统。我不明白。我在谷歌上找不到太多。请让我知道如何调试它。我正在使用 wamp。

$resConnection = ssh2_connect($strServer, $strServerPort);

if(ssh2_auth_password($resConnection, $strServerUsername, $strServerPassword)){
    //Initialize SFTP subsystem
    $resSFTP = ssh2_sftp($resConnection); -->error coming here

}else{
    echo "Unable to authenticate on server";
}
4

2 回答 2

0

没有更多信息很难说。不幸的是,libssh2 提供的信息量非常有限。我建议您使用phpseclib,一个纯 PHP SFTP 实现。例如。

<?php
include('Net/SFTP.php');

$sftp = new Net_SFTP('www.domain.tld');
if (!$sftp->login('username', 'password')) {
    exit('Login Failed');
}

print_r($sftp->nlist());
?>

如果您在切换后仍然遇到问题,请将其放在define('NET_SSH2_LOGGING', 3)顶部以获取日志。然后发布日志,以便您可以获得更好的帮助。

谢谢!

于 2013-08-23T16:11:26.673 回答
0

我有同样的问题,我通过以下步骤解决了它。

1) 首先,我注意到我们尝试建立 sftp 连接的服务器速度很慢。

2)我们这边有一个脚本尝试连接并从服务器获取文件,因此由于速度慢的问题,我们的脚本无法完成它们的工作并等待连接,因为它非常慢。我使用以下命令检查了为 sftp 连接创建了多少进程

ps aux | grep sftp

3)然后我用以下命令杀死了所有这些进程

pkill sftp

4)在我杀死那个进程之后,错误就消失了。

概括

这个问题的主要原因是。ftp 服务器出现缓慢问题,我们创建了太多连接。我认为服务器端的最大连接数有一些限制。

于 2017-09-07T10:38:50.797 回答