1

I set up an SSH Reverse tunnel using ssh -o StrictHostKeyChecking=no -R 2222:localhost:22 username@remoteserver.com. The tunnel connect to the remote server and opens port 2222. I connect into the tunnel with ssh -p 2222 user@tunnelclient and it works fine. I jump into the tunnel and land on the other machine. A few minutes go by an then the remote host closes the connection.

I start a ping to keep the activity going, and still, the remote host (the client that starts the tunnel to the remote server) drops the connection.

Q: How can I stop this from happening?

... 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:~$
2
  • This is often caused by an unstable network connection. You could try monitoring with netstat -i at each end. If possible, you could run the ssh server and/or client with the -d option and it should tell you why it is closing the connection. – Wayne Vosberg Jun 11 '20 at 8:19
  • it was the Type= field in the systemd service. – Dusty Boshoff Jun 11 '20 at 12:34
1

Found the problem. I solved it by changing the systemd service Type= from forking to simple see below.

[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

Now it works well and seems to be stable.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.