Use una clave especificada de ssh-agent

11

En la línea de ¿Cómo decirle a git qué clave privada usar? Me gustaría usar una clave ssh específica en una situación dada.

Mi problema es que incluso cuando especifico '-i something' ssh usa las claves de mi agente ssh en el orden en que se agregan.

Mi situacion especifica:

  • Tengo dos usuarios de github, cada uno con su propia clave que me gustaría, por ejemplo a través de una configuración ssh, para cada clon que especifique qué clave usar:

    Host USER1.git

    Nombre de host github.com

    Usuario git

    IdentityFile ~ / .ssh / USER1.id_rsa

ssh -vt USER1.git

aún usará USER2.id_rsa si esa es la clave agregada por primera vez a ssh-agent.

svrist
fuente

Respuestas:

5

Finalmente lo puse a trabajar:

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
  • La sangría cuenta.
  • Haga ssh-add -ly asegúrese de que se hayan agregado ambas claves.
    • Copie / pegue cada ruta ssh-add -len la línea apropiada ~/.ssh/configpara evitar errores tipográficos. Si hay un ~/.ssh/configerror tipográfico en la ruta del archivo de identidad para USER1, se usará la clave incorrecta (clave de USER2).

Recibí las instrucciones en BitBucket. Deberían funcionar para GitHub ya que la única diferencia es HostName: http://confluence.atlassian.com/pages/viewpage.action?pageId=271943168#ConfiguringMultipleSSHIdentitiesforGitBashMacOSXLinux-CreateaSSHconfigfile

Para que esto funcione en un servidor remoto utilizando el reenvío de agente, pruebe la sugerencia de @ stijn-hoop a continuación (en la sección de comentarios de esta respuesta).

revs dgo.a
fuente
3
Para su último comentario sobre el reenvío de agentes, vea esta respuesta: superuser.com/questions/273037/…
Stijn Hoop
1

Use IdentitiesOnly yesdebajo de estos hosts, en .ssh / config.

Puma
fuente
1
pero luego no usará el agente y me obligará a ingresar una frase de contraseña para todas las conexiones de
github
1
Sí, así es como funciona. No puede elegir entre diferentes teclas cuando usa ssh-agent. Una forma es iniciar múltiples agentes ssh y cambiar entre ellos usando diferentes envoltorios para diferentes operaciones de github o simplemente cambiando entre agentes ssh (cambiando SSH_AUTH_SOCK)
Cougar
66
El comentario anterior es incorrecto: PUEDE elegir identidades de su agente ssh. Vea también la respuesta que ya mencioné anteriormente, superuser.com/questions/273037/…
Stijn Hoop
0

El punto es usar el archivo de clave pública dentro de la IdentityFiledirectiva.

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

Si especificamos la clave privada dentro de la configuración SSH, el agente SSH no podrá elegir la clave correcta si la clave privada está encriptada.

Una pregunta similar sobre stackexchange: https://unix.stackexchange.com/a/495785/264704

ttimasdf
fuente