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 bastion-host-user@bastion-host.example.comEsempio, 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 bastion-host-user@bastion-host.example.comRemote 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 user@remote-host.example.comAd esempio, degli utenti remoti possono accedere al servizio in esecuzione sul server locale in questo modo:
ssh -R 80:localhost:8080 user@remote-host.example.comAlcune opzioni SSH utili
L'opzione
-fconfigurasshad andare in background appena prima dell'esecuzione del comando. Ciò è utile sesshdovrà 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-fattende che tutte le connessioni alle porte remote siano stabilite prima di andare in background. Si faccia riferimento alla descrizione della funzioneForkAfterAuthenticationin ssh_config(5) per ulteriori dettagli.-NNon eseguire un comando remoto. Ciò è utile per eseguire solo il forwarding di porte. Si riferisce alla descrizione diSessionTypein ssh_config(5) per ulteriori dettagli.