ssh -v -N -L 0.0.0.0:2080:10.10.15.5:2080 10.10.15.16
Questo comando crea un tunnel SSH locale che permette di rendere disponibile, sul computer locale, un servizio presente su una macchina remota raggiungibile tramite il server SSH.
Il flusso della connessione è il seguente:
Client │ │ localhost:2080 (o qualsiasi IP locale grazie a 0.0.0.0) ▼ Tunnel SSH │ Server SSH (10.10.15.16) │ ▼ Host remoto (10.10.15.5:2080)
Qualsiasi connessione verso la porta 2080 del client viene trasportata nel tunnel SSH fino al server 10.10.15.16, che a sua volta si collega al servizio in ascolto su 10.10.15.5:2080.
ssh: avvia il client SSH;-v: abilita la modalità verbose. Il client mostra informazioni dettagliate sulla connessione, utili per il debug e la risoluzione dei problemi;-N: non esegue alcun comando remoto. La sessione SSH viene utilizzata esclusivamente per mantenere attivo il tunnel;-L: configura un Local Port Forwarding.La sintassi generale è:
-L [indirizzo_locale:]porta_locale:host_destinazione:porta_destinazione
Nel comando di esempio:
-L 0.0.0.0:2080:10.10.15.5:2080
i parametri significano:
0.0.0.0 → il socket locale viene aperto su tutte le interfacce di rete del computer locale;2080 → porta locale sulla quale il client SSH resta in ascolto;10.10.15.5 → host finale che il server SSH deve raggiungere;2080 → porta del servizio sull'host remoto;
10.10.15.16 è il server SSH a cui il client si connette e attraverso il quale viene creato il tunnel.
10.10.15.16;2080;localhost:2080 (oppure all'indirizzo IP del client, poiché è stato utilizzato 0.0.0.0);10.10.15.16) apre una connessione verso 10.10.15.5:2080;
L'utilizzo di 0.0.0.0 rende la porta accessibile da tutte le interfacce di rete del client e non solo da localhost.
Ad esempio, se il client ha indirizzo IP 192.168.1.100, sarà possibile collegarsi sia a:
localhost:2080
sia a:
192.168.1.100:2080
Questo comportamento può essere utile quando altri computer della rete devono utilizzare il tunnel, ma aumenta la superficie di esposizione del servizio. Se non è necessario condividere il tunnel con altri host, è generalmente preferibile utilizzare:
-L 127.0.0.1:2080:10.10.15.5:2080
In questo modo la porta sarà raggiungibile esclusivamente dal computer locale.