(he votado para cerrar esto como un posible duplicado, pero que también podría añadir una respuesta similar de todos modos.)
Cuando se utiliza el transporte SSH, GitHub le identifica como usuario en base a la clave SSH que utilizas para autenticarte Por lo tanto, debe asegurarse de que git esté utilizando una clave SSH para un repositorio y otra para el otro.
voy a asumir que:
- tiene una cuenta de GitHub llama
user1
, y que ha añadido a la cuenta de la clave pública correspondiente a la clave privada local /home/whoever/.ssh/id_rsa
. Digamos que el repositorio que le interesa accediendo como user1
es user1/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 accediendo como user2
es user2/whatever
en GitHub.
La forma más sencilla de hacer frente a esta es la creación de un nuevo "a distancia" (es decir, un apodo para un repositorio remoto) para cada repositorio, donde el nombre de host se encuentra en la dirección URL de cada control remoto es realmente un alias que usted' se configuró en ~/.ssh/config
. (Si no existe ese archivo de configuración, tendrá que crearlo.)
Por ejemplo, una entrada en el archivo ~/.ssh/config
podría ser:
Host github-as-user1
HostName github.com
User git
IdentityFile /home/whoever/.ssh/id_rsa
continuación, puede agregar un control remoto llamado gh-user1
, por ejemplo, con:
git remote add gh-user1 [email protected]:user1/whatever.git
...y luego, si usted quiere empujar su sucursal master
al repositorio user1/whatever
en GitHub con la tecla de ~/.ssh/id_rsa
, sólo puede hacer:
git push gh-user1 master
Con el fin de empujar como el otro usuario (user2
) al segundo repositorio, necesita agregar un segundo alias ~/.ssh/config
archivo. Por ejemplo:
Host gh-as-user2
HostName github.com
User git
IdentityFile /home/whoever/.ssh/new/id_rsa
A continuación, para empujar a ese segundo repositorio como los diferentes usuarios, sólo se puede hacer:
git push gh-user2 master
me pregunto ¿por qué quiere colocar llaves "segundo" en '~ /. subcarpeta ssh'? ¿Por qué no ceñirse a la convención de tener una clave con sufijo por números, como: 'id_rsa',' id_rsa.1', 'id_rsa.2', etc ... –
@JuicyScripter Solo quiero hacer una separación, también tienes razón, sin embargo, yo ¿Necesito decirle a Git qué tecla necesita usar y cómo? –