Вы можете использовать как libssh2, так и curl из скрипта PHP.
- Сначала вам нужно получить библиотеку ssh2 с сайта PECL. Кроме того, пакет PEAR также поддерживает SSH2.
- После установки вы можете прочитать документацию ssh2 по настройке туннеля.
- В вашем скрипте вы можете настроить туннель.
- После настройки туннеля в скрипте вы можете указать прокси CURL.
- Выполните операцию CURL.
- Освободите туннельный ресурс и закройте соединение в вашем скрипте.
Я не эксперт по PHP, но вот пример:
<?php
$connection = ssh2_connect(ip-address-of-ssh-server, 22);
ssh2_auth_pubkey_file($connection, 'username', 'id_dsa.pub', 'id_dsa');
$tunnel = ssh2_tunnel($connection, '127.0.0.1', 9999);
curl_setopt($ch, CURLOPT_PROXY, ‘127.0.0.1:9999');
// perform curl operations
// The connection and tunnel will die at the and of the session.
?>
Самый простой вариант
Другой вариант, который следует рассмотреть, это использование sftp (ftp over ssh) вместо CURL ... это, вероятно, рекомендуемый способ безопасного копирования файла с одного сервера на другой в PHP ...
Еще более простой пример:
<?php
$connection = ssh2_connect(ip-address-of-ssh-server, 22);
ssh2_auth_password($connection, 'username', 'password');
ssh2_scp_send($connection, '/local/filename', '/remote/filename', 0644);
?>