Невозможно отправить или получить файл, используя ssh2_scp_recv и ssh2_scp_send - PullRequest
2 голосов
/ 21 октября 2011

Не уверен, что не так, но я не могу отправить или получить файл с использованием 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 функция не работают. Странно то, что я могу получить статистику файла, позвонив по номеру

$sftp = ssh2_sftp($connection);
$statinfo = ssh2_sftp_stat($sftp, $remoteFile);

Но невозможно прочитать данные файла.

Есть ли какое-то специальное разрешение, которое я должен установить на любом сервере?

Ответы [ 2 ]

0 голосов
/ 24 октября 2011

Я бы использовал 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();
?>
0 голосов
/ 22 октября 2011

SCP и SFTP - это разные вещи. Возможно, на вашем сервере SCP отключен.

...