vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner
Традиционная задача - как попасть по ssh на хост, не имеющий достижимого извне IP.
В данном случае в варианте "как мне попасть с работы домой".

У домашней машины есть VPN в которую включен хостинговый сервер.

Поэтому в принципе годится любой вариант ssh-через-прокси.

На эту тему теперь есть большой и толстый cookbook.

Начинаем применять рецепты оттуда по очереди

1. ssh -J www.wagner.pp.ru wagner

Увы, у меня на рабочей машине jessie. В нем openssh 6.7, он -J еще не умеет. С виртуалок со stretch и FreeBSD 11 попробовал, работает. Но dist-upgrade на stretch говорить рано. И уж точно не для этой фичи.

2. ssh -o "ProxyCommand ssh -W %h:22 www.wagner.pp.ru" wagner

Это мой openssh умеет. И, в принципе это у меня сейчас штатный способ

3. ssh -o 'ProxyCommand ssh www.wagner.pp.ru nc %h 22' wagner

Это умели и версии openssh, существовавшие десять лет назад. Сейчас я этого даже пробовать не стал. Зачем, если -W есть?

Далее вот такой интересный вопрос - в .xsessionrc на работе у меня все равно прописано открытие ssh-сессии на мою vds с -D 4080. Чтобы использовать этот порт в качестве web-прокси. Потому что не хочу я ошибку 451 видеть.

А может этой самой socks прокси можно еще воспользоваться для хождения по ssh?
Увы, openssh хорошо умеет быть socks-сервером, но не обучен быть socks-клиентом.

В вышеприведенном cookbook рекомендуют использовать netcat в качестве ProxyCommand.

ssh -o "ProxyCommand nc -X 5 -x localhost:4080 %h %p" wagner

Полез смотреть, а-а-а, netcat в jessie не понимает ни -X ни -x. Посмотрел повнимательнее, все гораздо хитрее - в jessie есть четыре разных нетката. И netcat-openbsd все что надо понимает. А у меня почему-то стоял netcat-traditional.

Остался нерассмотренным вопрос использования опции -w в ssh для организации полноценного VPN средствами самого ssh. Но об этом как-нибудь в следующий раз.

Date: 2017-02-16 08:42 am (UTC)
From: [personal profile] angry_elf
В клинических случаях, я поднимал на целевой машине реверс-туннель с какого-нить доступного публичного хоста. Через supervisord, для рестарта после обрывов (в конфиге еще надо добавить ServerAliveInterval, иначе ssh может часами думать, что коннект есть, когда его давно нету).

В менее клинических случаях - какой-нибудь вариант ipv6 через he/sixxs

Profile

vitus_wagner: My photo 2005 (Default)
vitus_wagner

July 2017

S M T W T F S
       1
2 3 45 678
91011 1213 1415
16 17 1819 2021 22
2324 25 26 27 2829
3031     

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 28th, 2017 06:45 am
Powered by Dreamwidth Studios