clave pública git para más repositorios

2 minutos de lectura

Tengo el siguiente problema.

Tengo 2 proyectos y uso github. El primer proyecto salió bien, creé una clave pública, ingresé la frase de contraseña y la presioné en github. No hay problema.

Segundo proyecto, creé otra clave pública y cuando quiero ingresar al segundo repositorio, sigue pidiendo la frase de contraseña para el primer código /.ssh/id_rsa. pero id_rsa tiene mi clave pública para el primer proyecto. así que, por supuesto, cuando ingreso la frase de contraseña, no funcionará porque intentará ingresar al primer repositorio en lugar del segundo.

¿Cómo puedo crear una clave pública y decirle a git que quiero enviar a otro repositorio?

Gracias.

avatar de usuario
VonC

Debe declarar sus diferentes claves ssh en un ~/.ssh/config archivo, como expliqué en “Cómo administrar múltiples claves ssh en el directorio ~/.ssh”

Recomendaría no usar el nombre predeterminado para las claves, sino más bien:

~/.ssh/proj1
~/.ssh/proj1.pub
~/.ssh/proj2
~/.ssh/proj2.pub

Y luego tener un ~/.ssh/config me gusta:

Host ghproj1
    User           git
    Hostname       github.com
    IdentityFile   ~/.ssh/proj1
    IdentitiesOnly yes
Host ghproj2
    User           git
    Hostname       github.com
    IdentityFile   ~/.ssh/proj2
    IdentitiesOnly yes

Debe cambiar la URL de origen en ambos repositorios:

cd /path/to/cloned/proj1
git remote set-url origin ghproj1:yourProject1

cd /path/to/cloned/proj2
git remote set-url origin ghproj1:yourProject2

Ver más en:

  • “¿Cómo cambiar temporalmente el usuario de git ssh para una inserción remota?”
  • “Problemas para cambiar de cuenta de Github en la terminal”

Una URL como ghproj1:yourProject1 es un ssh que usará explícitamente la clave que especificó en ~/.ssh/config Para el ghproj1 entrada.

En el caso del OP (respuesta a continuación), la URL correcta sería:

~/.ssh/id_recaprojekt

Nota: necesita especificar la ruta a la clave privada (privada, no pública, no .pub)

cd /path/to/cloned/plastickychirurg
git remote set-url origin plastickychirurg:michalfeher/plastickychirurg.git

cd /path/to/cloned/recaprojekt
git remote set-url origin recaprojekt:michalfeher/recaprojekt.git

Tenga en cuenta que he agregado “Nombre de host” en las entradas de Host.

La idea general de esas entradas en el archivo ~/.ssh/config es no (repita no) poner git o github.com en la url (lo hacen por ti los elementos asociados a cada entrada):

Entonces:

 [email protected]:michalfeher/recaprojekt.git

es lo mismo que:

 recaprojekt:michalfeher/recaprojekt.git

Excepto que la segunda URL usará la clave ssh

  • ¡Gracias por tu respuesta @VonC! Pero aparentemente estoy haciendo algo mal. Te daré mis ejemplos.

    – Michal Feher

    10 de junio de 2014 a las 13:05

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad