Posso avere più chiavi ssh nella mia cartella .ssh?


30

Posso creare più chiavi SSH e rinominarle in nomi intuitivi in ​​modo da sapere quale chiave è per quale sito Web ecc.

È sicuro?

per esempio:

github_id_rsa
github_id_rsa.pub
..
...

Come farà a sapere su quale chiave verificare quando ci si collega?

Sul mio computer ora, quando guardo known_hosts, sembrano tutti avere la stessa chiave dopo il nome dell'host ??



Inoltre, le chiavi host conosciute non sono sicuramente le stesse, basta guardare le estremità delle linee per ciascun host.
— slhck,

Risposte:


15

Sì, puoi avere diversi tasti ssh. C'è un'ottima documentazione sul sito della Guida di GitHub su Help.GitHub - Più chiavi SSH . Fondamentalmente userete ssh-add per aggiungere le chiavi extra in modo che l'agente possa utilizzarle. Quindi si configura la configurazione degli host ssh in modo che tutte le connessioni ssh a domini diversi vengano ricercate qui e venga utilizzata la chiave appropriata. in bocca al lupo!


1
Il link non funziona più
— danwellman,


44

È possibile modificare il file ~ / .ssh / config per utilizzare file di identità diversi per server diversi. Modifica ~ / .ssh / config nel tuo editor preferito e aggiungi una voce adatta alla tua situazione in questo modo:

Host *
IdentityFile ~/.ssh/id_rsa

Host *.github.*
IdentityFile ~/.ssh/github_id.rsa

Host *.someother.com
IdentityFile ~/.ssh/someother_id.rsa

La prima parte sopra imposta i valori predefiniti per tutti gli host e le altre sezioni sovrascrivono ciò che dovrebbe essere usato per ciascuno degli host che corrispondono ai pattern. Se si dispone di un nome utente diverso per ciascuno degli host, è possibile aggiungere alla sezione una chiave utente seguita dal nome utente sul telecomando.


3
Questa è la risposta più utile a questa domanda indipendentemente dalla destinazione sia GitHub o altri siti.
— Pierre,

Questo non funziona se si dispone di più account bitbucket e, purtroppo, è necessario disporre di chiavi diverse per ciascuno.
— John Little

chmod 400 ~/.ssh/id_rsao chmod 400 ~/.ssh/foo_id.rsapotrebbe essere necessario.
— T.Woody,

@JohnLittle Dai un'occhiata alla mia risposta che risolve l'account multiutente per lo stesso dominio.
— Sathishkumar Rakkiasamy,

4

È possibile impostare più chiavi SSH per qualsiasi sito con più account utente

Di seguito è riportato l'esempio che seguivo nel mio sviluppo per GitHub.com

Esempio di file di configurazione

#Personal account
 Host github.com-<personal-account-name>
 HostName github.com
 User git
 IdentityFile ~/.ssh/id_rsa_personal
 IdentitiesOnly yes



#Organization account
 Host github.com-<organization-name>
 HostName github.com
 User git
 IdentityFile ~/.ssh/id_rsa_work
 IdentitiesOnly yes

Al momento di aggiungere una nuova origine

Per account personale

git remote add origin git@github.com-<personal-account-name>:<personal-account-name>/<repo-name>.git

Per account dell'organizzazione

git remote add origin git@github.com-<organization-name>:<organization-name>/<repo-name>.git

Spero che sia d'aiuto.

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.