Я настроил обратный туннель SSH, используя ssh -o StrictHostKeyChecking=no -R 2222:localhost:22 username@remoteserver.com
. Туннель подключается к удаленному серверу и открывает порт 2222. Я подключаюсь к туннелю с помощью ssh -p 2222 user@tunnelclient
и все работает нормально.
Я прыгаю в туннель и сажусь на другую машину. Проходит несколько минут, затем удаленный хост закрывает соединение.
Я запускаю ping, чтобы поддержать активность, и все равно удаленный хост (клиент, который запускает туннель к удаленному серверу) разрывает соединение.
Вопрос: Как я могу остановить это?
... snip ...
64 bytes from 127.0.0.1: icmp_seq=70 ttl=64 time=0.080 ms
64 bytes from 127.0.0.1: icmp_seq=71 ttl=64 time=0.079 ms
64 bytes from 127.0.0.1: icmp_seq=72 ttl=64 time=0.076 ms
64 bytes from 127.0.0.1: icmp_seq=73 ttl=64 time=0.080 ms
64 bytes from 127.0.0.1: icmp_seq=74 ttl=64 time=0.080 ms
64 bytes from 127.0.0.1: icmp_seq=75 ttl=64 time=0.080 ms
64 bytes from 127.0.0.1: icmp_seq=76 ttl=64 time=0.080 ms
Connection to localhost closed by remote host.
Connection to localhost closed.
user@remoteserver:~$
Найдена проблема. Я решил это путем изменения службы systemd Type =
с разветвления
на простого
, см. Ниже.
[Unit]
Description="SSH Reverse Tunnel Service"
After=network.target
[Service]
Type=simple
User=dev
Restart=always
ExecStart=/bin/ssh -vvv -o StrictHostKeyChecking=no -R 2222:127.0.0.1:22 remoteuser@remoteserver
[Install]
WantedBy=multi-user.target
Теперь это работает хорошо и кажется стабильным.