Tunneling data over SSH is pretty straight-forward: ssh -D9999 username@example.com sets up port 9999 on your localhost as a tunnel to example.com , but I have a more specific need: I am working locally on localhost host1 is accessible to localhost host2 only accepts connections from host1 I need to create a tunnel from localhost to host2 Effectively, I want to create a "multi-hop" SSH tunnel. How can I do this? Ideally, I'd like to do this without needing to be superuser on any of the machines. ============================================= You basically have three possibilities: Tunnel from localhost to host1 : ssh -L 9999:host2:1234 -N host1 As noted above, the connection from host1 to host2 will not be secured. Tunnel from localhost to host1 and from host1 to host2 : ssh -L 9999:localhost:9999 host1 ssh -L 9999:localhost:1234 -N host2 This will open a tunnel from localhost to host1 and another tunnel from hos