¿Puedo tener varias claves ssh en mi carpeta .ssh?

30

¿Puedo crear varias claves ssh y cambiarles el nombre a nombres fáciles de usar para saber qué clave es para qué sitio web, etc.

¿Es esto seguro?

p.ej:

github_id_rsa
github_id_rsa.pub
..
...

¿Cómo sabrá con qué clave verificar cuando se conecte?

En mi computadora ahora, cuando miro a conocido_hosts, ¿todos parecen tener la misma clave después del nombre del host?

usuario27449
fuente
Además, las claves de host conocidas definitivamente no son las mismas, solo mire los extremos de las líneas para cada host.
slhck

Respuestas:

15

Sí, puedes tener diferentes claves ssh. Hay muy buena documentación en el sitio de ayuda de GitHub en Help.GitHub - Múltiples claves SSH . Básicamente, usará ssh-add para agregar las claves adicionales para que el agente pueda utilizarlas. Luego configura la configuración de hosts ssh para que cualquier conexión ssh a diferentes dominios se busque aquí y se use la clave adecuada. ¡buena suerte!

ArtemT
fuente
1
Link ya no funciona
danwellman
44

Puede modificar el archivo ~ / .ssh / config para usar diferentes archivos de identidad para diferentes servidores. Edite ~ / .ssh / config en su editor favorito y agregue una entrada que sea apropiada para su situación de la siguiente manera:

Host *
IdentityFile ~/.ssh/id_rsa

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

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

La primera parte anterior establece los valores predeterminados para todos los hosts y las otras secciones anulan lo que se debe usar para cada uno de los hosts que coincidan con los patrones. Si tiene un nombre de usuario diferente para cada uno de los hosts, puede agregar una clave de Usuario seguida del nombre de usuario en el control remoto a la sección.

joehep
fuente
3
Esta es la respuesta más útil a esta pregunta, independientemente del destino, ya sea GitHub u otros sitios.
Pierre
Esto no funciona si tiene múltiples cuentas de bitbucket y, desafortunadamente, necesita tener diferentes claves para cada una.
John Little
chmod 400 ~/.ssh/id_rsao chmod 400 ~/.ssh/foo_id.rsapuede ser necesario
T.Woody
@JohnLittle Eche un vistazo a mi respuesta que resuelve la cuenta multiusuario para el mismo dominio.
Sathishkumar Rakkiasamy
4

Puede configurar varias claves ssh para cualquier sitio que tenga múltiples cuentas de usuario

A continuación se muestra el ejemplo que solía seguir en mi desarrollo para GitHub.com

Ejemplo de archivo de configuración

#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 de agregar un nuevo origen

Para cuenta personal

git remote add origin [email protected]<personal-account-name>:<personal-account-name>/<repo-name>.git

Para cuenta de organización

git remote add origin [email protected]<organization-name>:<organization-name>/<repo-name>.git

Espero eso ayude.

Sathishkumar Rakkiasamy
fuente