Note sul forwarding di porte tramite SSH
Local Forwarding
Il "forward locale" è utilizzato per fare forward di una data porta esistente in locale ad una data porta esistente su un server remoto. Ciò può essere utile quando un servizio sul server remoto è accessibile dal computer locale solo attraverso un Bastion Host a causa di un firewall:
ssh -L local-port:remote-private-service.example.com:remote-private-port [email protected]
Esempio, per accedere tramite la porta locale 8080 al servizio remoto esposto alla porta 80 si può utilizzare la seguente comando:
ssh -L 8080:remote-private-service.example.com:80 [email protected]
Remote Forwarding
Il "forward remoto" è utilizzato per fare il forward di una data porta presente sul server remoto ad una data porta presente su una macchina locale. Ciò può essere utile quando un servizio presente su una macchina locale non è accessibile dal server remoto a causa di un firewall. La riga di comando da usare:
ssh -L remote-private-port:local-server:local-port [email protected]
Ad esempio, degli utenti remoti possono accedere al servizio in esecuzione sul server locale in questo modo:
ssh -R 80:localhost:8080 [email protected]
Alcune opzioni SSH utili
L'opzione
-f
configurassh
ad andare in background appena prima dell'esecuzione del comando. Ciò è utile sessh
dovrà ricevere password, ma l'utente ne richiede l'esecuzione in background. Questo implica-n
. [...] Se la configurazioneExitOnForwardFailure
è impostata a "yes", allora un client eseguito con-f
attende che tutte le connessioni alle porte remote siano stabilite prima di andare in background. Si faccia riferimento alla descrizione della funzioneForkAfterAuthentication
in ssh_config(5) per ulteriori dettagli.-N
Non eseguire un comando remoto. Ciò è utile per eseguire solo il forwarding di porte. Si riferisce alla descrizione diSessionType
in ssh_config(5) per ulteriori dettagli.