
У меня дома есть компьютер с установленным SSH, которым я хотел бы управлять удаленно. Однако я не могу разрешить переадресацию портов SSH через свой маршрутизатор, поэтому единственный способ попасть туда — заставить установку на моем компьютере прослушивать порт на сервере для подключений. Существует ли какое-либо существующее программное обеспечение для этой цели?
решение1
Поскольку вы упомянули о наличии доступа к внешнему серверу, вы должны иметь возможность сделать это через обратный туннель.
Из вашей домашней системы вам нужно будет подключиться по ssh к удаленному серверу, используя следующий синтаксис:
ssh -g -R 12345:localhost:22 user@remoteserver
- Флаг -g позволяет удаленным хостам подключаться к перенаправленному порту. В противном случае настройка ssh по умолчанию такова, что только система, которая первой создала туннель, может использовать порт (имеется в виду домашний сервер)
- -R используется для настройки обратного туннеля, и мы говорим, что соединения с remoteserver:12345 должны перенаправляться на localhost:22
Чтобы использовать туннель, вам нужно сделать что-то вроде:
ssh -p 12345 remoteserver
Конечно, чтобы этот туннель работал, вам нужно будет убедиться, что сеанс SSH от домашнего сервера к удаленному серверу остается активным.
решение2
@Ashley Steel, посмотрите на установку значения ServerAliveInterval на ненулевое значение. В командной строке ssh это будет выглядеть примерно так: -oServerAliveInterval\ 60
Вы также можете настроить его в файле .ssh/config на удаленном хосте.