Utilizzare una chiave specificata da ssh-agent


11

Sulla falsariga di Come dire a git quale chiave privata usare? Vorrei utilizzare una chiave SSH specifica in una determinata situazione.

Il mio problema è che anche quando specifico '-i qualcosa' ssh usa le chiavi del mio agente ssh nell'ordine in cui vengono aggiunte.

La mia situazione specifica:

  • Ho due utenti github, ognuno con la propria chiave che vorrei - ad esempio tramite un ssh-config - per ogni clone specificare quale chiave usare:

    Host USER1.git

    Nome host github.com

    User git

    IdentityFile ~ / .ssh / USER1.id_rsa

ssh -vt USER1.git

userà ancora USER2.id_rsa se questa è la chiave aggiunta per la prima volta a ssh-agent.

Risposte:


5

Finalmente sono riuscito a farlo funzionare:

Host USER1.git
  User git
  HostName github.com
  IdentityFile ~/.ssh/USER1.id_rsa

Host USER2.git
  User git
  HostName github.com
  IdentityFile ~/.ssh/USER2.id_rsa
  • Il rientro conta.
  • Fai ssh-add -le assicurati che entrambe le tue chiavi siano state aggiunte.
    • Copia / incolla ogni percorso ssh-add -lnella riga appropriata ~/.ssh/configper evitare errori di battitura. Se esiste un ~/.ssh/configerrore di battitura del percorso del file di identità per USER1, verrà invece utilizzata la chiave errata (chiave di USER2).

Ho ricevuto le istruzioni su BitBucket. Dovrebbero funzionare per GitHub poiché l'unica differenza è HostName: http://confluence.atlassian.com/pages/viewpage.action?pageId=271943168#ConfiguringMultipleSSHIdentitiesforGitBashMacOSXLinux-CreateaSSHconfigfile

Per farlo funzionare su un server remoto usando l'inoltro dell'agente, prova il suggerimento di @ stijn-hoop di seguito (nella sezione commenti di questa risposta).


3
Per il tuo ultimo commento sull'inoltro dell'agente, vedi questa risposta: superuser.com/questions/273037/…
Stijn Hoop

1

Usa IdentitiesOnly yessotto questi host, in .ssh / config.


1
ma poi non userà l'agente e mi costringerà a inserire la passphrase per tutte le connessioni github
svrist

1
Sì, funziona così. Non è possibile scegliere tra chiavi diverse quando si utilizza ssh-agent. Un modo è quello di avviare più agenti ssh e passare da uno all'altro usando diversi wrapper per diverse operazioni github o semplicemente passare da un agente ssh all'altro (cambiando SSH_AUTH_SOCK)
Cougar

6
Il commento sopra non è corretto: PUOI scegliere le identità dal tuo agente ssh. Vedi anche la risposta che ho già menzionato sopra, superuser.com/questions/273037/…
Stijn Hoop,

0

Il punto è usare il file della chiave pubblica all'interno della IdentityFiledirettiva.

Host USER1.git
  User git
  HostName github.com
  IdentityFile ~/.ssh/USER1.id_rsa.pub

Host USER2.git
  User git
  HostName github.com
  IdentityFile ~/.ssh/USER2.id_rsa.pub

Se specifichiamo la chiave privata all'interno della configurazione SSH, l'agente SSH non riuscirà a scegliere la chiave giusta se la chiave privata è crittografata.

Una domanda simile su stackexchange: https://unix.stackexchange.com/a/495785/264704

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.