Ci sono diversi casi in cui è necessario accedere ad un server SSH dietro una NAT dove il gateway può essere raggiunto via SSH che a sua volta può raggiungere il server SSH interno. Normalmente avremmo bisogno di collegarci al gateway e poi da gateway avviare una nuova connessione SSH all’interno.
Ci sono due soluzioni che consentono di velocizzare questa procedura, una l’abbiamo vista tempo fa ed è il port forwarding, dove il server dietro la NAT effettua una connessione SSH al gateway e gli chiede di mettersi in ascolto su una certa porta ed inoltrare tutto quello che riceve su questa porta al server che ha avviato il port forwarding.
Un’altra soluzione, qualora non sia possibile aprire porte sul gateway o non si possa raggiungere prima il server dietro la NAT, è fare una doppia connessione SSH (prima al gateway e poi dal gateway verso il server interno) e questa cosa… può essere automatizzata.
In base alla versione di OpenSSH installata, la configurazione è leggermente diversa. Ricordo che la configurazione ssh va fatta nel file ~/.ssh/config in cui andremo a creare una sezione per la connessione che ci interessa. Ipotizziamo che il gateway abbia IP 10.10.10.10 (il nostro proxyserver) ed il server dietro NAT abbia IP 192.168.1.20 (il nostro server finale), la configurazione nel nostro client sarà:
OpenSSH 7.3 o superiore:
Configurazione in ~/.ssh/config del client:
Host dietro_nat Hostname 192.168.1.20 ProxyJump 10.10.10.10
e ci colleghiamo con:
ssh dietro_nat
Oppure, senza la configurazione, ci possiamo collegare direttamente con:
ssh 192.168.1.20 -o 'ProxyJump 10.10.10.10'
o, in alternativa:
ssh -J user@10.10.10.10 user@192.168.1.20
OpenSSH superiore alla 5.4:
Configurazione in ~/.ssh/config del client:
Host dietro_nat
Hostname 192.168.1.20
ProxyCommand ssh 10.10.10.10 -W %h:%pe ci colleghiamo sempre con:
ssh dietro_nat
Oppure, senza la configurazione, ci possiamo collegare direttamente con:
ssh 192.168.1.20 -o 'ProxyCommand ssh 10.10.10.10 -W %h:%p'OpenSSH inferiore alla 5.4:
Configurazione in ~/.ssh/config del client:
Host dietro_nat
Hostname 192.168.1.29
ProxyCommand ssh 10.10.10.10 nc %h %p 2> /dev/nulle ci colleghiamo con:
ssh dietro_nat
Oppure, senza la configurazione, ci possiamo collegare direttamente con:
ssh 192.168.1.20 -o 'ProxyCommand ssh 10.10.10.10 nc %h %p 2> /dev/null'enjoy!
Ti interessa acquistare un dominio a prezzi ultraconvenienti? clicca qui
Se hai trovato utili le informazioni su questo blog,
Fai una donazione!
Clicca sul bottone qui sotto o almeno clicca sul banner pubblicitario 🙂
Commenta