У меня проблема, когда в cygwin переменная http_proxy env игнорируется. я пробовал прописные и строчные буквы для имени переменной, просто не читал ssh.

export HTTP_PROXY="http://user:pass@proxy.job.com:8080/"

Не использует прокси

ssh myuser@home.com

Использует прокси

wget http://home.com/

Кто-нибудь видит, что я не прав?

1 ответ1

8

Ваш вопрос неясен, потому что вы не объясняете, чего пытаетесь достичь. Я рискну предположить, что, конечно, может быть неверным. Я думаю, что:

  • вы хотите использовать ssh для подключения со своей рабочей машины к home.com ;
  • ssh home.com не работает (зависает или отображает сообщение об ошибке), потому что ваш рабочий брандмауэр блокирует исходящие соединения;
  • user:pass@proxy.job.com:8080 - это прокси, который вы настроили в своем веб-браузере на работе.

Поскольку ssh использует протокол ssh, а не протокол http или https, он не заботится о http_proxy или https_proxy .

Есть способ туннелировать трафик ssh через прокси https. Прокси не может отличить трафик ssh от трафика https, так как они оба зашифрованы. Это могут сделать три программы: netcat (версия OpenBSD), corkscrew и connect-proxy. Я собираюсь привести пример для штопора, который, как я знаю, представлен в Cygwin. Используйте следующие настройки в вашем файле .ssh/config :

Host home
HostName home.com
User myuser
ProxyCommand /usr/bin/corkscrew proxy.job.com 8080 %h %p /path/to/corkscrew/authfile

и поместите одну строку, содержащую user:pass /path/to/corkscrew/authfile .

Некоторые прокси не позволяют вам подключаться к порту 22 (обычный порт ssh), только к порту 443 (обычный порт https). Если у вас есть контроль над сервером на home.com , вы также можете заставить его прослушивать порт 443: скорее всего, вы захотите добавить 443 к строке Port в файле sshd_config или перенаправить входящие соединения через порт. 443 на вашем домашнем маршрутизаторе к порту 22 на вашей машине sshd. Затем добавьте Port 443 под строкой HostName в .ssh/config .

В качестве альтернативы, если ваши попытки проникновения через брандмауэр не удаются, посмотрите на установку Ajaxterm на веб-сервере за пределами брандмауэра.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .