SSH через Proxy HTTP в Linux

archive view archive save

SSH через Proxy HTTP в Linux Бывают случаи когда нужно использовать ssh через proxy HTTP. Например ssh через proxy HTTP будет кстати когда Интернет провайдер запретил доступ по ИП или же ssh через proxy HTTP нужно использовать для обхода ограничений корпоративного брандмауэра.

Программа corkscrew может быть скомпилирована в таких операционных системах как:

  • HPUX
  • Solaris
  • FreeBSD
  • OpenBSD
  • Linux
  • Win32 (with Cygwin)

Установка программы corkscrew:

cd /usr/local/src
wget http://www.agroman.net/corkscrew/corkscrew-2.0.tar.gz
tar -zxf corkscrew-2.0.tar.gz
rm -f corkscrew-2.0.tar.gz
cd corkscrew-2.0
less INSTALL
./configure
 
creating cache ./config.cache
checking for a BSD compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking whether make sets ${MAKE}... yes
checking for working aclocal... found
checking for working autoconf... found
checking for working automake... found
checking for working autoheader... found
checking for working makeinfo... missing
checking for gcc... gcc
checking whether the C compiler (gcc  ) works... yes
checking whether the C compiler (gcc  ) is a cross-compiler... no
checking whether we are using GNU C... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking how to run the C preprocessor... gcc -E
checking for function prototypes... yes
checking for gcc... (cached) gcc
checking whether the C compiler (gcc -g -O2 ) works... yes
checking whether the C compiler (gcc -g -O2 ) is a cross-compiler... no
checking whether we are using GNU C... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for mawk... no
checking for gawk... gawk
checking for a BSD compatible install... /usr/bin/install -c
checking whether ln -s works... yes
checking host system type... i686-pc-linux-gnu
checking for ANSI C header files... yes
checking whether time.h and sys/time.h may both be included... yes
checking for select... yes
checking for socket... yes
checking for strerror... yes
checking for working const... yes
updating cache ./config.cache
creating ./config.status
creating Makefile
creating config.h
 
make install clean

Программа corkscrew будет расположена в директории /usr/local/bin/: /usr/local/bin/corkscrew. Теперь для использования ssh через Proxy HTTP в Linux, переходим в домашний каталог и создаём файл конфигурации config для ssh:

cd ~/.ssh
vi config
 
Host *
ProxyCommand corkscrew example-proxy.com 8080 %h %p

Host * - определяет хост при подключении к которому нужно будет использовать прокси сервер, в данном случае * при подключении через ssh к любым хостам будет использоваться указанный прокси сервер example-proxy.com 8080.

Вместо example-proxy.com 8080 указываем адрес реально рабочего прокси сервера и его порт. В переменные %h %p автоматически будут попадать значения из вашего ssh клиента, соответствуют хосту и порту.

Проверить результат подключения через ssh к любым хостам можно использовав привычную команду ssh:

ssh target-ssh-host.com

Если подключение выполнено без ошибок, то значит теперь вы используете ssh соединение через proxy HTTP. Для использования ssh через proxy HTTP которые требуют авторизации, нужно в тот же файле конфигурации config указать место расположение файла с логиами и паролями, которые записываются в формате login:password:

Host *
ProxyCommand corkscrew example-proxy.com 8080 %h %p ~/.ssh/proxyauth

По официального описания Corkscrew тестировался на таких HTTP proxies как:

  • Gauntlet
  • CacheFlow
  • JunkBuster
  • Apache mod_proxy

Относительно успешного использования Corkscrew для подключения к ssh через proxy HTTP других версий/производителей ничего не ясно и автор Corkscrew просит репортировать ему на электронную почту.

Corkscrew используется для тунелирования ssh через proxy по протоколу HTTP но, как отмечает автор, вы возможно сможете найти для Corkscrew иное применение.

В windows для тунелирования ssh через proxy можно использовать программу Putty, его же можно установить и в Linux командой yum install putty, только putty утилита для работы в графической среде (интерфейсе/режиме) и для консольного режима неканает!

Ссылки по теме:


Об авторе
АдМинь БагоИскатель
АдМинь БагоИскатель ярый борец за безглючную работу любых механизмов и организмов во всей вселенной и потому пребывает в вечном поиске всяческих багов, а тот кто ищет как известно всегда находит. Когда что-то или кого-то вылечить не в состоянии, то со словами "Я в аду, а вы все черти" уходит в запой выйдя из которого снова берётся лечить неизлечимое.
Ещё статьи автора
Комментарии в блоге
Новое на форуме