SSH ProxyCommand och värdbaserad autentisering: vilken värd signerar?
Skilj på att vidarebefordra en TCP-ström genom en bastion och att starta en andra SSH-klient där när värdbaserad autentisering är inblandad.
Ett mål ser en TCP-anslutning som kommer från bastionen medan SSH-klienten som utför autentiseringen fortfarande körs på arbetsstationen.
Host behind-bastion
ProxyCommand ssh -W %h:%p bastionHär loggar hjälparen in på bastionen och ber dess SSH-server om en vidarebefordrad anslutning till målet. Arbetsstationens yttre SSH-klient utväxlar målets SSH-protokoll genom den strömmen. Bastionen tillhandahåller transporten; den har inte startat den målriktade SSH-klienten.
Den skillnaden är viktig för värdbaserad autentisering. OpenSSH:s ssh-keysign-hjälpare kommer åt lokala värdnycklar för att generera den nödvändiga signaturen. En nätverkskälladress som tillhör bastionen gör inte att arbetsstationen signerar med bastionens värdnyckel.
Jämför med:
ssh -t bastion ssh targetDetta startar ett annat SSH-program på bastionen. Dess lokala konfiguration och tillgängliga värdnycklar tillhör den maskinen, så det kan delta i en redan konfigurerad värdbaserad förtroendeordning mellan bastionen och målet. Det behöver fortfarande målets motsvarande auktorisering och namnkontroller.
Den andra formen ändrar också hur sessionen fungerar: den kör ett fjärrkommando och använder en terminal. Den är inte en transparent ersättning för varje SSH-filöverföring eller automatiseringstransport. Välj ordningen efter vilken maskin som ska autentisera mot målet, i stället för att försvaga serverns förtroendekontroller så att källadressen verkar tillräcklig.