È possibile specificare le chiavi inoltrate utilizzando la direttiva IdentityFile in .ssh / config?
Mi sono imbattuto in questa stranezza nel tentativo di distribuire un codice tramite Capistrano / GIT sul nostro server di produzione. Le chiavi GIT personali e personali sono sempre caricate nel mio agente SSH ed è successo che la mia chiave personale è stata aggiunta per prima all'agente. Uso l'inoltro dell'agente durante la distribuzione con Capistrano, quindi quando l'host ha provato ad autenticare l'operazione `git pull` non è riuscito con il seguente errore:
ERRORE: autorizzazione a `alcuni repo` negata a` il tuo utente`.
perché ha tentato di autenticarsi usando la mia chiave git personale prima di provare la chiave appropriata (che è arrivata più tardi nell'agente ssh) e ha ipotizzato che stavo accedendo a un repository esterno a cui non ho il permesso di accedere. Posso potenzialmente consentire al mio utente personale di accedere a tutti i repository di lavoro, ma sul mio computer locale posso aggirare questo problema definendo i domini personalizzati in .ssh / config in questo modo:
Host personal.github.com
Nome host github.com
User git
IdentityFile ~ / .ssh / some_key
Host work.github.com
Nome host github.com
User git
IdentityFile ~ / .ssh / some_other_key
e in questo modo git non viene mai confuso. È possibile creare regole .ssh / config per le chiavi inoltrate sulle mie caselle di produzione in modo che sappiano sempre quale chiave usare quando si inserisce un nuovo codice? Fondamentalmente voglio essere in grado di fare:
Host work.github.com
Nome host github.com
User git
IdentityFile some_forwarded_key
Grazie!