ssh2 scp 通过 php 来自 win do unix 不起作用

ssh2 scp via php from win do unix does not work

我目前遇到了一个奇怪的问题: 将文件 从 windows 远程机器复制到本地 unix 机器 时,由于在远程机器上找不到文件而失败。

错误:

Warning: ssh2_scp_recv(): Unable to receive remote file 

php代码

ssh2_scp_recv($connection, "textexample", "nexText.txt");

正常scp工作:

scp user@host:textexample textexample

当我试图通过 ssh2_scp_send 发送(以编程方式)时,它正在工作,但远程主机上的文件被命名为 'textexample'(带有这些引号)。 所以假设是 windows 搞砸了 ;)

在 Windows 端,在用户的 ssh 之后有 cmd 会话。但是 afaik 这不应该在这里做任何事情(而且通常的 SCP 无论如何都在工作)。

有什么特别的想法吗?

最好的, 弯曲

为了确保没有其他人在这里遇到这种令人讨厌的事情:)

我用上面评论中 @Chris Haas 的建议库解决了它:

phpseclib.com

    $sftp = new SFTP($remoteHost, $port);
    if ($sftp->login($username, $password)) {
        echo "Password authentication successful\n";

        // Trying to download one file
        if ($sftp->get('textexample', 'textexample')) {
            echo "Copied one file successfully\n";
            return true;
        }
        return false;
    }

    echo "Password authentication not successful\n";
    return false;

成功了!