Secure Shell
Tunnel inversi
Ricerca…
OpenSSH
La creazione di un tunnel ssh inverso richiede solo un passaggio -R al comando originale.
Riga di comando
Supponiamo che ti ssh [email protected] a example.com come utente guest utilizzando un comando ssh [email protected] . L'apertura del tunnel inverso può assomigliare a questo:
ssh -R 2222:localhost:22 [email protected]
Si aprirà una porta 2222 sul server remoto (solo interfaccia di loopback) e ogni connessione a questa porta verrà inoltrata al server ssh del computer locale (porta 22 ).
Questo presuppone anche che tu abbia permesso le opzioni AllowTcpForwarding yes e PermitOpen any nel tuo sshd_config sul tuo server. Altrimenti fallirà con l'errore
open failed: administratively prohibited: open failed
Se si desidera consentire che la porta inoltrata sia accessibile su altri indirizzi di rete (rispetto a localhost ), è necessario aggiungere inoltre GatewayPorts yes e utilizzare un indirizzo IP o nome host o IP):
ssh -R 2222:example.com:22 [email protected]
Configurazione
Inoltre, puoi specificare il tuo port forwarding remoto in ~/.ssh/config per evitare di digitare la stessa linea ogni volta che ti connetti. Una buona pratica potrebbe essere quella di impostare anche un alias per l'host, che avrà questo inoltro, se ti connetti al tuo host frequentemente e non vuoi avviare il port forwarding ogni volta:
Host example.com-R
Hostname example.com
User guest
RemoteForward 2222 localhost:22
e quindi creare port forwarding remoto semplicemente usando ssh example.com-R
In esecuzione in background
Il port forwarding può essere semplicemente eseguito in background usando gli switch -N (non eseguire il comando remoto, solo l'inoltro), -f (andare in background dopo l'autenticazione), -T (disabilitare l'allocazione TTY remota). Mettere tutto insieme:
ssh -NTfR 2222:localhost:22 [email protected]