Nell'ultimo dei nostri "solo gli esempi", immagina di trovarti in uno scenario in cui vuoi inviare ssh a un server (o persino sfogliare una pagina Web ecc.) su un server a cui non puoi accedere direttamente. Tuttavia, hai accesso dalla tua casella (localhost) a un server (server1) che può connettersi a quel server (chiamiamolo server2).
Ecco come ssh tunnel quella merda!
Supponiamo che il tuo nome utente sia bob, ma l'unico account a cui hai accesso sull'host remoto (server2) si chiama tom, solo per motivi di chiarezza.
Tunnel da localhost
a server1
e da localhost
a server2
:
ssh -L 9998:tom@server2:22 -N bob@server1
ssh -p 9998 tom@localhost
Noterai quando accedi al server 1 sulla prima riga, si trova e si blocca lì. Questo perché ha stabilito il tunnel. Premi semplicemente ctrl+z
e digita 'bg
' per eseguire in background il processo ssh prima di passare a ssh attraverso il tunnel.
Se vuoi che sia super sicuro, hai bisogno di un telaio in più:questo esempio aprirà un tunnel da localhost al server1 attraverso il quale è possibile utilizzare il servizio SSH sul server2. Quindi viene aperto un secondo tunnel da localhost
a host2
attraverso il primo tunnel.
ssh -L 9998:tom@server2:22 -N bob@server1
ssh -L 9999:tom@localhost:1234 -N -p 9998 localhost
Ecco un ottimo collegamento con altri esempi e spiegazioni:
http://blog.trackets.com/2014/05/17/ssh-tunnel-local-and-remote-port-forwarding-explained-with-examples.html