【问题标题】:Send file by sftp通过 sftp 发送文件
【发布时间】:2011-03-14 15:29:09
【问题描述】:

在 Ubuntu 机器下,我想创建一个脚本,允许我通过 SFTP 发送文件。为此,我使用以下代码:

$connection = ssh2_connect('XXX', 22);

if (ssh2_auth_password($connection, 'USER', 'PASS')) {
  echo "Authentication Successful!\n";
} else {
  die('Authentication Failed...');
}

对于第一个结果:

Warning: ssh2_auth_password(): Authentication failed for ...

我从阅读大量扩展 ssh2.so 的教程中想到。所以我安装了它,仍然没有结果。

【问题讨论】:

  • 正确的用户名和密码有助于连接

标签: php ubuntu ftp sftp


【解决方案1】:

我建议不要使用基于 ssh2 的函数phpseclib, a pure PHP SFTP implementation

使用 phpseclib 你可以做到:

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

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

echo $sftp->pwd() . "\r\n";
$sftp->put('filename.ext', file_get_contents('localfile.data'););
print_r($sftp->nlist());
?>

【讨论】:

【解决方案2】:

您可以使用流机制:将目标文件寻址为

$dest = "ftps://user:pwd@server.com/destinationfile.txt"

然后使用标准的phpcopy函数:

copy($from, $dest)

【讨论】:

  • -1。 SFTPFTPS 不同。
  • 它给出了这个错误:警告:copy() [function.copy]: connect() failed: Connection denied in
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-18
  • 1970-01-01
  • 2021-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多