Una destinazione vede una connessione TCP proveniente dal bastion mentre il client SSH che esegue l'autenticazione è ancora in esecuzione sulla stazione di lavoro.

Host behind-bastion
    ProxyCommand ssh -W %h:%p bastion

Qui l'helper accede al bastion e chiede al suo server SSH una connessione inoltrata verso la destinazione. Il client SSH esterno della stazione scambia il protocollo SSH della destinazione attraverso quel flusso. Il bastion fornisce il trasporto; non ha avviato il client SSH rivolto alla destinazione.

Questa distinzione conta per l'autenticazione basata sull'host. L'helper ssh-keysign di OpenSSH accede alle chiavi host locali per generare la firma richiesta. Un indirizzo di origine di rete appartenente al bastion non fa sì che la stazione firmi con la chiave host del bastion.

Confrontatelo con:

ssh -t bastion ssh target

Questo avvia un altro programma SSH sul bastion. La sua configurazione locale e le chiavi host disponibili appartengono a quella macchina, quindi può partecipare a un accordo di fiducia basato sull'host già configurato tra il bastion e la destinazione. Ha comunque bisogno dell'autorizzazione corrispondente e dei controlli del nome della destinazione.

La seconda forma cambia anche il funzionamento della sessione: esegue un comando remoto e usa un terminale. Non è un sostituto trasparente per ogni trasferimento di file SSH o trasporto di automazione. Scegliere l'assetto in base a quale macchina deve autenticarsi verso la destinazione, invece di indebolire i controlli di fiducia del server affinché l'indirizzo di origine appaia sufficiente.

Articoli correlati