【发布时间】:2016-12-29 15:25:52
【问题描述】:
我正在使用 ssh2_scp_send 通过 SFTP 将文件从一台服务器传输到另一台服务器。虽然我可以确认对远程服务器的访问并且可以使用 GUI 应用程序 (FileZilla) 传输文件,但我的 ssh2_scp_send 调用失败了。
我认为这可能是因为我不知道(也不容易找到)远程服务器的完整路径。我假设如果我只是传递文件名,它将默认为允许用户访问的父目录。
$conn = ssh2_connect('domain', 22);
$auth = ssh2_auth_password($conn, 'user', 'password');
if ($auth) {
//send the file
$send = ssh2_scp_send($conn, $file, $data['xml_filename']);
}
我尝试使用ssh2_exec($ssh_conn, 'ls -la'); 检索目录并尝试找出位置,但失败了(我的访问凭据不允许除 SFTP 之外的 SSH 命令)。
我的问题:
- 有没有一种简单的方法可以找出完整的远程路径?
- 有没有办法告诉 ssh2_scp_send 只使用默认目标?
- 我还应该排除哪些其他问题?我只是猜测上面是问题所在——它可能完全不同。
【问题讨论】: