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.
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