Я использую функцию ssh2_scp_send () для отправки файлов с сервера на другой через ssh.Тестовый скрипт и реальное приложение прекрасно работают на моей рабочей станции Ubuntu, между ней и удаленным сервером, а также между моим ПК с Windows и сервером разработки CentOS 5.0 Linux в моем офисе.В моем клиентском месте ssh2_scp_send () останавливается, возвращает false, и отправленный файл усекается (2 МБ для 6,5 МБ).Отправитель и сервер-получатель используют CentOS 5.5 и являются виртуальными серверами на гипервизоре VmWare Vsphere.Существует виртуальная локальная сеть между ними.Меньшие файлы не усекаются.На каждом сервере достаточно места на диске.
Вот тестовый скрипт:
<?php
$source = '/sourcefile.dat';
$dest = '/destfile.dat';
$serveur = 'sshserver';
$login = 'login';
$sPub = 'public_key';
$sPriv = 'private_key';
$passphrase = 'pass';
$aSSHMethods = array(
'kex' => 'diffie-hellman-group1-sha1',
'client_to_server' => array(
'crypt' => '3des-cbc,aes256-cbc,aes192-cbc,aes128-cbc',
'comp' => 'none'),
'server_to_client' => array(
'crypt' => '3des-cbc,aes256-cbc,aes192-cbc,aes128-cbc',
'comp' => 'none'),
);
$rSSH = ssh2_connect($serveur, 22, $aSSHMethods);
ssh2_auth_pubkey_file($rSSH, $login, $sPub, $sPriv, $passphrase);
ssh2_scp_send($rSSH, $source, $dest);
Я попытался заменить ssh2_scp_send () на ssh2_sftp / fopen / fwrite / fclose, но этозапустить так же, и медленнее.
Как я могу понять, почему трансфер зависает?Журналы sshd на конечном сервере просто показывают соединение и отключение.
Спасибо