загрузка с помощью SFTP: CURLOPT_SSLKEY не используется

я должен загружать файлы SFTP с сервера на другой

вот моя функция sftp ():

function transfert_curl_sftp($local_filename, $distant_filename, $host_destination, $user_destination,$pubkey_filename,$privkey_filename,$port) { if ( !extension_loaded('curl') ) return 'no_curl_extension'; $distant_filename = ltrim($distant_filename,'/'); $fp = fopen($local_filenam, 'r'); $sftp_server = $host_destination.'/'.$distant_filename; $curl = curl_init(); curl_setopt($curl, CURLOPT_UPLOAD, TRUE); curl_setopt($curl, CURLOPT_HEADER, TRUE); curl_setopt($curl, CURLOPT_VERBOSE, TRUE); curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($curl, CURLOPT_PROTOCOLS, CURLPROTO_SFTP); curl_setopt($curl, CURLOPT_NOPROGRESS, FALSE); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, TRUE); $trace = tempnam( dirname($local_filenam),'temp_curl_' ); $fptrace = fopen($trace, 'w'); curl_setopt($curl, CURLOPT_FILE, $fptrace); curl_setopt($curl, CURLOPT_STDERR, $fptrace); curl_setopt($curl, CURLOPT_URL, 'sftp://@'.$sftp_server); curl_setopt($curl, CURLOPT_PORT, $port); curl_setopt($curl, CURLOPT_USERPWD, $user_destination.':'); curl_setopt($curl, CURLOPT_SSH_PUBLIC_KEYFILE, $pubkey_filename); curl_setopt($curl, CURLOPT_SSLENGINE, ''); curl_setopt($curl, CURLOPT_SSLKEY, $privkey_filename); curl_setopt($curl, CURLOPT_SSLKEYPASSWD, ''); curl_setopt($curl, CURLOPT_INFILESIZE, filesize($local_file)); curl_setopt($curl, CURLOPT_INFILE, $fp); $info = curl_getinfo($curl); $start_error_no = curl_errno($curl); $valid_operation = curl_exec($curl); $final_error_no = curl_errno($curl); curl_close($curl); fclose($fp); fclose($fptrace); echo '<pre>trace:',file_get_contents($trace),'<hr>'; var_dump($start_error_no,$valid_operation,$final_error_no); return true; } 

файл никогда не загружается 🙁

когда я смотрю файл трассировки, я вижу * Доступны методы аутентификации SSH: публикация, пароль * Использование открытого ключа ssh /var/www/xxx/yyy/upload/dsa-zzz.pub * Использование файла закрытого ключа ssh id_dsa * Открытый ключ SSH Ошибка аутентификации: Обратный вызов возвратил ошибку *, поэтому я думаю, что параметр CURLOPT_SSLKEY не установлен … все мои файлы ключей одобрены для чтения …

это ошибка PHP? или я что-то не умею писать?