Ubuntu – Execute a command on local computer from a connected remote SSH host

remote accessssh

Say I have connected to a remote computer via SSH. From a program on this remote computer, I need to execute a command on my local computer (the connection initiator).

Which raises the question: is it possible to leech onto the existing connection between the two computers to run a command on the local computer?

I have considered running the command ssh user@host-of-connecting-party <command> on the remote computer to establish a reversed connection. But this is harder to automate and will require user intervention. I was hoping I could fully automate it, or at least detect the user/hostname of the connected user.

Best Answer

@62mkv's answer is a much better solution. Use that.

For completeness and curiosity though, if you have an ssh server running on your local machine, you could create an ssh tunnel to allow ssh connections from the remote host on port 20202 back to the local one on port 22. Example command:

ssh -R20202:localhost:22 remoteuser@remotehost.com

This will start an ssh connection, but also set up a tunnel back to the ssh server running on your machine. Then you can do this, when ssh'ed into the remote host:

ssh -p 20202 localuser@localhost

Of course, this can quickly get confusing - especially if the technique is nested more than once. It adds a bit of latency, too - since everything you execute on your local machine is bounced through the remote host.

Additional information about ssh tunneling for those whose curiosity hasn't been satisfied yet can be found in answer to this unix stackexchange question.