Я использую PHPSECLIB для отправки файла и XML на сервер SFTP.
В этом случае сервер, к которому я пытаюсь связаться, находится вне моей рабочей сети.
Для подключения к Интернету снаружи у нас есть прокси-сервер.
Что мне нужно сделать, это настроить прокси-сервер этого подключения к тому, что мне нужно.
РЕДАКТИРОВАТЬ —
У меня есть следующий код, как я могу передать имя пользователя и пароль моего прокси?
$proxyHost = '******'
$fsock = fsockopen($proxyHost, $proxyPort);
$address = '*****';
$port = '*****';
$request = "CONNECT $address:$port HTTP/1.0\r\nContent-Length: 0\r\n\r\n";
if(fputs($fsock, $request) != strlen($request)) {
exit("premature termination");
}
$response = fgets($fsock);
$sftp = new SFTP($fsock);
.......
квотирование https://github.com/phpseclib/phpseclib/issues/1339#issuecomment-462224179:
С авторизацией:
$fsock = fsockopen('127.0.0.1', 80, $errno, $errstr, 1); if (!$fsock) { echo $errstr; exit; } fputs($fsock, "CONNECT website.com:22 HTTP/1.0\r\n"); fputs($fsock, "Proxy-Authorization: Basic " . base64_encode('user:pass') . "\r\n"); fputs($fsock, "\r\n"); while ($line = fgets($fsock, 1024)) { if ($line == "\r\n") { break; } //echo $line; } $ssh = new Net_SSH2($fsock); $ssh->login('user', 'pass'); echo $ssh->exec('ls -latr');
Если это не сработает, запустите скрипт и скажите мне, какие заголовки вы получите. Дайджест-аутентификация — это больше PITA, чем Basic, но это не невозможно.
Больше информации о том, как авторизация работает с HTTP прокси:
Других решений пока нет …