Just some stuff about me.
<targetserver>
via <stepstone>
Set it up in ~/.ssh/config like this:
Host stepstone
User user
HostName hostname
Host targetserver
User user
Hostname hostname
ProxyCommand ssh -W %h:%p stepstone
<user>
is your username, <hostname>
is the hostname or IP address of the server.
ProxyCommand is the command that SSH will use as a transport channel – write to stdin of the command, read from stdout of the command.
This is essentially running the command
ssh -o ProxyCommand="ssh -l <username> -W %h:%p <stepstone>" -l <username> <targetserver>
%h:%p
gets translated to targetserver:22
(port 22 by default, you can also set up a Port
option).
If the -W
option is not available in SSH, you can use the old style, with netcat:
ssh -o ProxyCommand="ssh -l <username> <stepstone> 'nc %h %p'" -l <username> <targetserver>
Where nc
basically passes packets to the target server. You connect to the stepstone, and then execute netcat on it to tunnel to the next server. Here’s a diagram: