My question is basically how to turn my existing two steps into one step.
I have a working SSH tunnel set up between two computers using a middleman server like this:
Kubuntu_laptop--->nat_fw--->Debian_Server<--nat_fw<--Kubuntu_desktop
What I do presently is SSH from Kubuntu_laptop to Debian_Server and then from Debian_Server to Kubuntu_desktop. I would like to make that one SSH command, issued on my Kubuntu_laptop in bash that results in my being connected to the Kubuntu_desktop (shell/bash).
The commands I am using now are as follows.
Step 1:
me@kubuntu_laptop:~$ ssh -i ~/.ssh/id_rsa admin@debian_server
Step 2:
admin@debian_server:$ ssh -p 1234 -i /home/admin/.ssh/id_rsa admin@localhost
Then I am connected to the kubuntu_desktop via SSH (from kubuntu_laptop).
RSA keys are required for all SSH connections. Password login is disabled all the way around. And notice that the computer user accounts are different at two of the computers.
Regarding the connection for this leg:
Debian_Server<--nat_fw<--Kubuntu_desktop
Here is how it is established.
Step 0:
autossh -M 5234 -N -f -R 1234:localhost:22 [email protected] -p 22
Notice Kubuntu_desktop connects to middleman as [email protected] (not admin@debian_server). But when I connect to Kubuntu_desktop, I connect as admin user.
I cannot change the existing monitoring port (5234) or the remote (- R) port number (1234 in this example). I cannot change the SSH security to allow password logins. I cannot open up any new firewall ports. I can't change user accounts (except on laptop).
(Once I have this working, I want to get vnc or some remote desktop support solution working over the SSH tunnel.)
Make sure netcat is installed on the Debian server, and use
ProxyCommand
in your local SSH configuration (~/.ssh/config
).