Возникла проблема, админы заблокировали все порты, кроме 80 и 443, но осталась потребность работать с различными сервисами по 22 порту.
Для того, чтобы решить проблему, я на своем сервере открыл ssh-сервер на 443 порту и следующей командой прокинул порт 1080 на порт 443:
ssh -D 1080 root@v10 -p 443 -A
Внимательный читатель скажет, а почему сразу не прокинуть 22 порт? Ответ прост: к сожалению, у меня это не сработало.
Итак, на своем ноуте я имею открытый порт 1080, через который теперь могу ходить на любой порт.
Однако, ни один ssh-клиент про наш трюк ведь не знает, и вот чтобы ssh-клиенты узнали про это, нужно сконфигурировать файл ~/.ssh/config
Host github.com
User git
ProxyCommand nc -x localhost:1080 %h %p
Host bitbucket.org
User lebnik
ProxyCommand nc -x localhost:1080 %h %p
Host v30
ProxyCommand connect -S root@v30:1080 %h %p
Как видите, для меня важны сервисы: github.com и bitbucket.org. А хост v30 - это мой второй сервер, на котором стоит SSH-сервер с стандартно открытым портом 22.
Вы могли заметить, в конфиге я просто указываю, через какой хост и порт ходить на выше указанные хосты.
Источник: 1
p.s. иногда удобно использовать флаги -f -N чтобы отправить процесс с открытым портом в бэкграунд.
Комментарии
Комментариев пока нет.