![](/img/trans.png)
[英]ssh2_scp_send() and ssh2_scp_recv() functions are not working in php. Why?
[英]Unable to send or receive file using ssh2_scp_recv and ssh2_scp_send
不知道出了什么問題,但是我無法使用SSH發送或接收文件。
我正在使用以下代碼
define('SSH_HOST', 'HOST');
define('SSH_USER', 'USER');
define('SSH_PASS', 'PASSWORD');
$connection = ssh2_connect(SSH_HOST, 22);
ssh2_auth_password($connection, SSH_USER, SSH_PASS);
$remoteFile = '/remote/absolute/path/file.ext';
$localFile = '/local/absolute/path/file.ext';
if(ssh2_scp_recv($connection, $remoteFile, $localFile)){
echo("received");
}else{
echo("NOT received");
}
此功能和file_get_contents
函數均file_get_contents
。 奇怪的是,我能夠通過調用獲取文件統計信息
$sftp = ssh2_sftp($connection);
$statinfo = ssh2_sftp_stat($sftp, $remoteFile);
但是無法讀取文件數據。
我必須在任一服務器上設置一些特殊權限嗎?
SCP和SFTP是不同的東西。 SCP可能已在您的服務器上禁用。
我將使用phpseclib,這是純PHP SFTP實現 。 由於具有日志記錄功能,因此更易於使用且更易於診斷問題。 即。
<?php
include('Net/SFTP.php');
define('NET_SSH2_LOGGING', NET_SSH2_LOG_COMPLEX);
$ssh = new Net_SFTP('www.domain.tld');
if (!$ssh->login('username', 'password')) {
exit('Login Failed');
}
$ssh->put('filename.ext', 'zzzzzzzzzzzzzzz');
echo $ssh->getLog();
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.