SSH BACKCONNECT

Для проведения работ у одного из клиентов понадобилось войти на сервер, который доступ к интернету имеет, но находится за NAT’ом, а значит напрямую до него не достучаться. В этом случае, на помощь приходит трюк с backconnect’ом по SSH.
На машине, которая находится за NAT’ом, ставим openssh сервер, запускаем его и выполняем вот такую команду:
1
|
# ssh -R 8222:localhost:22 admin@1.2.3.4 -p 2222
|
Вводим пароль для доступа по SSH и оставляем висеть сессию открытой. Если сессию оставлять открытой не хочется, можно увести процесс в фон добавив перед -R ключи -f -N.
Затем на сервере проверяем соединения, например с помощью netstat, и видим там следующее:
1
|
tcp 0 0 127.0.0.1:8222 0.0.0.0:* LISTEN 7589/sshd: root@pts
|
Нам остаётся просто соединиться по SSH на 127.0.0.1:8222 и мы, через поднятый туннель, попадём на машину за NAT’ом:
1
2
3
4
|
[root@vps451870 ~]# ssh root@127.0.0.1 -p8222
root@127.0.0.1's password:
Last login: Mon Jul 10 08:29:04 2017
[root@localhost ~]#
|
Я этот способ так же очень часто использую, когда будучи в поездке нужно попасть на домашний ПК и забрать с него что-то.