SSH ForwardAgent più hop


15

Ho cercato una soluzione al seguente problema per le ultime 2 ore senza fortuna.

Sviluppo:

Sto usando l'autenticazione con chiave pubblica per connettermi ai miei server. Uso l'inoltro di ssh-agent per non dover gestire chiavi pubbliche / private.

Diciamo che ho dei server A, B and C.

Funziona molto bene se mi connetto da LOCAL ---> A ---> B.

Funziona anche molto bene se lo faccio LOCAL ---> A ---> C.

Ora, se provo LOCAL ---> A ---> B ---> C, SSH non può connettersi da B to C.

Vale la pena notare: mi collego al server A come liquidità, mentre mi collego al server B come root. La connessione al server B come liquidità risolve il problema, ma questa non è un'opzione per me.

Come da raccomandazione di un utente, utilizzo ssh -Aogni volta per assicurarsi che l'inoltro dell'agente sia abilitato.

Ho trovato una domanda simile, senza risposta qui: è possibile concatenare l'inoltro di ssh-agent attraverso più hop?

Secondo @Zoredache qui: /server//a/561576/45671 Ho solo bisogno di regolare la configurazione del mio client su ciascun sistema intermedio. Che credo di aver fatto.


Prendi in considerazione l'utilizzo di ProxyCommandhopping (come spiegato qui ) invece di inoltrare l'agente SSH. Per il tuo approccio dovrai fidarti di tutte le macchine della catena perché possono (ab) usare le tue chiavi private. Mi piace anche l'approccio ProxyCommand molto meglio perché il controllo host noto viene eseguito localmente e, inoltre, è possibile impostare la catena nella configurazione SSH in modo da poter utilizzare un singolo comando per connettersi a C.
gertvdijk

Purtroppo non posso usare un proxyCommand. Nonostante le considerazioni sulla sicurezza, ho davvero bisogno di usare forwardAgent.
liquidità il

@liquidity posso chiederti perché non vuoi usare proxyCommand? Ho lo stesso problema e, a quanto mi risulta, proxyCommand è più sicuro. Quindi sto pensando a quale usare ..
grep

Risposte:


13

Per fare in modo che l'inoltro degli agenti funzioni attraverso più salti, è sufficiente regolare la configurazione del client su ciascun sistema intermedio in modo che l'inoltro degli agenti.

Potrebbe essere semplicemente assicurarsi che /etc/ssh/ssh_configquesto sia configurato. Ma se hai configurazioni per client ~/.ssh/configpotrebbe essere necessario modificare anche quelle impostazioni.

Host *
    ForwardAgent yes

Puoi vedere se l'inoltro dell'agente è avvenuto o se c'è stato un errore se aggiungi semplicemente l' -vopzione.

$ ssh -v issc@server1
OpenSSH_5.9p1 Debian-5ubuntu1.1, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /home/zoredache/.ssh/config
...
debug1: Requesting authentication agent forwarding.
debug1: Sending environment.
Linux server1 3.11-0.bpo.2-amd64 #1 SMP Debian 3.11.8-1~bpo70+1 (2013-11-21) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sun Dec 15 20:39:44 2013 from 10.2.4.243
issc@server1:~$

Verificare inoltre di avere un set di variabili di ambiente valido.

issc@server1:~$ export | grep SSH_AUTH
declare -x SSH_AUTH_SOCK="/tmp/ssh-7VejOmKtNv/agent.57943"

4
Vale la pena menzionare il flag -A su ssh come alternativa veloce e sporca all'opzione ssh_config o ~ .ssh / config. -A [e] abilita l'inoltro della connessione dell'agente di autenticazione.
dmourati,

1
Ad ogni passaggio, puoi usare ssh-add -lper elencare le chiavi che ssh pensa possano ottenere tramite il tuo agente. Assicurati di inoltrarlo su ogni connessione!
MikeyB,

Grazie! Si noti inoltre che se tutto è stato eseguito correttamente non sarà necessario avviare manualmente ssh-agent sull'ultimo server. Si avvierà automaticamente se vedi la linea Requesting authentication agent forwarding.nell'output di debug. Se hai provato .bash_profilea avviare ssh-agent, rimuovilo da lì, altrimenti il ​​tuo agente si riavvierà senza identità.
agosto
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.