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 на 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
чи так.