Функции ssh2_scp_send () и ssh2_scp_recv () не работают в php. Почему?

1

Функция ssh2_scp_send() висит в php. Вот код:

$debug_line_feed = "\n";
$conn = ssh2_connect($sftp_server, 22);
$return = ssh2_auth_password($conn, $sftp_user_name, $sftp_user_pass);
if ($return===true) echo "successfull connection".$debug_line_feed;

echo "uploading file".$debug_line_feed;
$local_filename = $product_feed_file_with_path;
$remote_filename = 'product_feed.txt';
ssh2_scp_send($conn, $local_filename, $remote_filename);
echo "successful".$debug_line_feed;

Когда я запускаю его, он выводит "успешное соединение", "загрузка файла", а затем зависает. Есть идеи как это исправить?

Я также попытался загрузить файл с помощью ssh2_scp_recv, и он также зависает, при этом локальный файл создается в виде 0-байтового файла.

Теги:
ssh2-sftp
jail-shell

2 ответа

2
Лучший ответ

Я предполагаю, что на сервере установлена оболочка тюрьмы. В этот момент SCP не будет работать, но SFTP.

  • 0
    Это именно так. Мне пришлось использовать функции файловой операции с sftp. Должен ли я опубликовать свой код в качестве решения?
0

В последнее время я использую sftp для отправки файла, linux в windows, ssh2_scp_send не работает, я решаю проблемы

$sftp = ssh2_sftp($conn);
 $contents = file_get_contents($localPath);
 $result = file_put_contents("ssh2.sftp://{$sftp}/{$remotePath}", $contents);

затем работает

Ещё вопросы

Сообщество Overcoder
Наверх
Меню