Я прочитал статью после статьи и просто не могу найти «решение», которое работает для того, что у меня есть.Подключиться к SFTP с помощью PHP и частного ключа
Я пытаюсь загрузить файлы через SFTP, используя php-скриптинг. Я успешно использовал CyberDuck, но мне нужно сделать это программно.
У меня есть файл .PPK от поставщика, который я использовал в CyberDuck. У меня есть имя пользователя. У меня есть имя хоста. Если я открою файл PPK, я вижу некоторые публичные линии, частные линии и Private-MAC.
Есть ли в любом случае я могу получить доступ к серверу, чтобы делать то, что мне нужно, используя информацию, которую у меня есть?
Вот код, который я играл с:
<?php if (!function_exists("ssh2_connect")) die("function ssh2_connect doesn't exist");
?>
<?php
$conn = ssh2_connect('hostname.com', 22);
echo $conn;
ssh2_auth_pubkey_file($conn,'USERNAME','/var/www/html/FILENAME.PPK');
// send a file
ssh2_scp_send($conn, '/var/www/html/FILETOSEND.TXT', 'FILETOSEND.TXT', 0644);
?>
я не получаю никаких ошибок, но файл не отображается на сервере. Я могу подтвердить, что SSH2 установлен на моем веб-хосте.
Спасибо за любую помощь, которую вы можете предоставить.
Я бы настоятельно рекомендовал использовать [phpseclib] (https://github.com/phpseclib/phpseclib) для достижения того, чего вы хотите достичь. Это лучше, чем сборка php в ssh2-функциях и очень проста в использовании. – baao
Вы, кажется, не знаете, что 'ssh2_auth_pubkey_file' ожидает 4 аргумента, а не 3. http://php.net/manual/en/function.ssh2-auth -pubkey-file.php –
@charlotte, я видел, что именно поэтому я предполагаю, что у меня проблемы. Могу ли я разбить файл PPK на отсутствующие элементы? –