SSH через прокси
Если брандмауэр позволяет вам, вы можете запустить ssh для любого порта, но для этого требуется, чтобы сервер ssh прослушивал этот порт. Порт 80 вряд ли будет работать, потому что большинство мест, где есть брандмауэры, анализируют трафик на этом порту и блокируют все, что не HTTP. Но порт 443, который обычно является портом HTTPS, часто работает, потому что SSH и HTTPS очень похожи друг на друга в программном обеспечении фильтрации, поэтому ваш сеанс SSH будет выглядеть как сеанс HTTPS. (Можно различить HTTPS и SSH, поэтому это не будет работать, если брандмауэр достаточно сложен.)
Если у вас есть контроль над сервером, сделайте так, чтобы он прослушивал порт 443 в дополнение к 22 (обычный порт ssh). Вы можете настроить порт в /etc/ssh/sshd_config
: добавить строку
Port 443
в дополнение к тому, Port 22
что уже должно быть там. Обратите внимание, что это предполагает, что сервер ssh также не является сервером HTTPS. Если это так, вам нужно найти другой порт, который позволяет использовать брандмауэр, или найти другой ssh-сервер (см. Переадресацию ниже).
Если вам не нужно устанавливать веб-прокси в своем веб-браузере, попробуйте подключиться напрямую:
ssh -p 443 myserver.example.com
Если это работает, определите псевдоним в вашем ~/.ssh/config
:
Host myserver
HostName myserver.example.com
Port 443
Если вам нужно установить веб-прокси в вашем веб-браузере, скажите ssh пройти через прокси. Установите штопор . Определите такой псевдоним в вашем ~/.ssh/config
, где http://proxy.acme.com:3128/
находится прокси, который вы используете для HTTPS снаружи (замените на правильное имя хоста и порт):
Host myserver
HostName myserver.example.com
Port 443
ProxyCommand /usr/bin/corkscrew proxy.acme.com 3128 %h %p
SSH над SSH
Если вы можете получить доступ к какой-либо внешней машине одним из описанных выше способов, но не к интересующей вас машине, используйте ее для переадресации соединения. Предполагая, что вы можете подключиться к ssh к машине с именем mygateway
и хотите подключиться к SSH-серверу mytarget
, установите netcat-openbsd on mygateway
(или, если он не работает под Ubuntu, убедитесь, что у него есть nc
команда). Поместите это в свой ~/.ssh/config
:
Host mytarget
ProxyCommand ssh mygateway nc %h %p
SSH к Apache
Если хост, к которому вы хотите подключиться, уже работает под управлением Apache и прослушивает порт 443, и у вас есть контроль над этим хостом, вы можете настроить этот Apache для приема соединений SSH и их переадресации. Посмотрите Туннелирование SSH по HTTP (S) .
man ssh
показывает порт: хост: хост. Так попробуйssh 80:server.com
или около того.