remove - git push tag
Cómo trabajar con múltiples claves ssh (1)
Esta pregunta ya tiene una respuesta aquí:
- Múltiples cuentas de GitHub y SSH Config 11 respuestas
Usuarios de GitHub,
Soy novato en github y tengo algún problema con la configuración de git. Tengo 2 cuentas con diferentes usuarios en github y tengo setup git en mi sistema 2 veces
Primera carpeta /.ssh (como siempre) (contiene id_rsa que se copió en la primera cuenta)
Segunda carpeta /.ssh/new (contiene id_rsa que se copió en la segunda cuenta)
ahora, en el momento del push, ¿cómo puedo cambiar entre la clave ssh?
Porque si me gustaría presionar para la segunda cuenta, usará la tecla .ssh en lugar de .ssh / new y me dará un error.
Por favor, hazme corregir si se me entiende algo mal aquí.
Gracias.
(He votado a favor de cerrar esto como posible duplicado, pero también podría agregar una respuesta similar).
Al usar el transporte SSH, GitHub lo identifica como un usuario basado en la clave SSH que utiliza para autenticarse. Por lo tanto, debe asegurarse de que git esté utilizando una clave SSH para un repositorio y otra para el otro.
Voy a suponer que:
- Tiene una cuenta de GitHub llamada
user1
y ha agregado a esa cuenta la clave pública correspondiente a su clave privada local/home/whoever/.ssh/id_rsa
. Digamos que el repositorio que le interesa acceder comouser1
esuser1/whatever
en GitHub. - Tiene una segunda cuenta de GitHub llamada
user2
y ha agregado a esa cuenta la clave pública correspondiente a su clave privada local/home/whoever/.ssh/new/id_rsa
. Digamos que el repositorio que le interesa acceder comouser2
esuser2/whatever
en GitHub.
La forma más simple de hacer frente a esto es crear un nuevo "remoto" (es decir, un apodo para un repositorio remoto) para cada repositorio, donde el nombre de host está en la URL de cada control remoto es realmente un alias que ha configurado en ~/.ssh/config
. (Si ese archivo de configuración no existe, tendrá que crearlo).
Por ejemplo, una entrada en el archivo ~/.ssh/config
podría verse así:
Host github-as-user1
HostName github.com
User git
IdentityFile /home/whoever/.ssh/id_rsa
Luego puede agregar un control remoto llamado gh-user1
, por ejemplo, con:
git remote add gh-user1 git@github-as-user1:user1/whatever.git
... y luego si desea enviar su rama master
al repositorio user1/whatever
en GitHub usando la tecla ~/.ssh/id_rsa
, puede hacer lo siguiente:
git push gh-user1 master
Para empujar como el otro usuario ( user2
) al segundo repositorio, necesita agregar un segundo alias a su archivo ~/.ssh/config
. Por ejemplo:
Host gh-as-user2
HostName github.com
User git
IdentityFile /home/whoever/.ssh/new/id_rsa
Luego, para ingresar a ese segundo repositorio como el usuario diferente, puede hacer lo siguiente:
git push gh-user2 master