Sono a mio agio con l'uso della funzione ProxyCommand di ssh e posso usarlo per saltare attraverso gli host bastioni multipla per raggiungere l'host finale in modo efficiente. Ma proprio non riesco a capire come funzioni effettivamente nel backend.
Per es. Ho il seguente file di configurazione.
Host final
Hostname final.com
Port 22
AgentForwarding yes
User guestuser
ProxyCommand "ssh user@bastion.com -W %h:%p"
Comprendo che per la connessione all'host final
, ProxyCommand verrà eseguito prima di effettuare la connessione final.com
. Ma non riesco ancora a capire l'ordine delle connessioni.
E cosa fa l'opzione -W %h:%p
? Capisco che è la funzione netcat ed è simile a nc %h %p
.
Quindi, per quanto riguarda la mia comprensione, ecco la sequenza delle operazioni. Fammi sapere se sbaglio. Userò il file di configurazione sopra specificato nel mio esempio.
- L'utente entra
ssh final
- Creata una connessione ssh a bastion.com.
- Un tunnel netcat viene creato da bastion.com alla porta 22 di final.com. Lo stdin di netcat è collegato alla shell ottenuta nella connessione a bastion.com.
- Quindi ora abbiamo una connessione dal nostro sistema a final.com. La prima metà di questa connessione è una connessione ssh dal nostro sistema a bastion.com. La seconda metà di questa connessione è un tunnel netcat da bastion.com a final.com.
- Ora il
ssh final
comando accetta la connessione precedente come proxy e esegue il tunneling dei dati attraverso questa connessione esistente.
Inoltre vorrei anche sapere se questa tecnica è anche nota come stacking ssh ?
aggiunte interruzioni di riga