SSH Tunnel
ssh -L [bind_addr]:port:dst:dst_port middleman
On the machine you execute this command, create a socket listening to bind_addr:port which forwards connections to dst:dst_port through middleman.
You will be asked for user name and password for logging in middleman's SSH.
Reversed SSH Tunnel
ssh -R [bind_addr]:port:dst:dst_port middleman
Connect to middleman and create a listening socket on middleman to listen to [bind_addr]:port which forwards connections to dst:dst_port .
You will be asked for user name and password for logging in middleman's SSH.