Во многих учереждениях существует политика ограничения доступа к интернету. Часто доступ в интернет доступен только через http-прокси, причем на ограниченое множество портов (80, 443, 8080 и т.п.).
Однако наверное все http-прокси поддерживают https, а он (из-за шифрации ssl) реализуется с помощью метода CONNECT. Таким образом прокси разрешает через себя делать коннекты на порт 443 (а возможно и другие), чем можно воспользоваться. Итак, заранее подготавливаем внешний ssh сервер, редактируя файл sshd_config (/etc/ssh/sshd_config):
В стандартном шаблоне определены следующие строки:
#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
Раскомментируем "#Port 22" и добавляем "Port 443", чтобы получилось примерно так:
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
Port 22
Port 443
Перезапускаем sshd: /etc/init.d/sshd restart
Далее настраиваем клиента:
Во-первых ставим corkscrew: emerge -av corkscrew(или аналогично в другом дистрибутиве).
После этого модифицируем (или создаем) ~/.ssh/config следующего содержания:
Host your.ssh.host
ProxyCommand corkscrew local.proxy 3128 %h %p
, где local.proxy и 3128 - адрес и порт локального прокси-сервера.
Все, после этого вы сможете без проблем подключаться к вашем серверу по ssh через обычный http/https прокси.