6

Is there an open source alternative to TeamViewer? The issue is having the remote placed device initiate a connection so that the help desk can manage the device.

I am looking to create a facility for remote management on devices we deploy which are BEHIND a firewall).

I understand that the SSH protocol supports X11 forwarding, but if I am going to deploy 10+ devices behind a firewall, how would I connect to the correct device to manage it?

  • Check unix.stackexchange.com/questions/9870 for options. – dsstorefile1 Sep 18 '18 at 10:54
  • 2
    @dsstorefile1 None of those solutions would work behind non-forwarded NAT. So a solution that works when both are behind NAT would be very interesting. – Ole Tange Sep 18 '18 at 11:01
  • 2
    People that know about the alternative, will probably know little about teamviewer. Therefore please tell us what you are looking for. What does it have to do? – ctrl-alt-delor Sep 18 '18 at 11:28
  • see wikipedia for a list of remote desktop software, if that is what teamviewer is doing for you, but remote management doesn't usually need a GUI. – meuh Sep 18 '18 at 14:07
  • I am looking for a way to have a device connect to our Internet webserver, and identify itself (Secret Handshake??) as a new device, or a rebooted system, which will allow us to remote connect to the server, and then provide remote management. – Albert Whale Sep 21 '18 at 12:23
0

Well, with a little bit of scripting you could put something together. Assuming you have a compatible version of OpenSSH (with support for Unix socket forwarding) and netcat (with support for Unix sockets), you can have all your clients phone in to your accessible server, and open up a reverse socket allowing access.

On the server side, create an account to use for the clients to connect to. For all clients to connect to your server with

ssh -R sockets/${SOME_CLIENT_ID}:localhost:22 -l ${SOME_USERNAME} ${SOME_SERVER}

When you need to connect to the client which came in:

ssh \
  -o StrictHostKeyChecking=no \
  -o ProxyCommand="nc -U ~${SOME_USERNAME}/sockets/${SOME_CLIENT_ID}" \
  -l root ${SOME_CLIENT_ID}"

systemd can easily help you maintain these connections alive if you set them up as a service.

  • Thank you, this looks intriging, I'll be working on this right away. – Albert Whale Sep 25 '18 at 18:40

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.