Utilisateurs de GitHub,
Je suis novice sur github et j'ai un problème avec la configuration de git. J'ai 2 comptes avec différents utilisateurs sur github et j'ai configuré git sur mon système 2 fois
Premier /. Ssh dossier (comme d'habitude) (contient id_rsa qui a copié dans le premier compte)
Deuxième /. Ssh/nouvea dossier (contient id_rsa qui a copié dans le deuxième compte)
maintenant au moment de Push, comment puis-je basculer entre les touches ssh?
Parce que si je souhaite pousser pour un deuxième compte, il utilisera la clé .ssh au lieu de .ssh/new et me donnera une erreur.
Veuillez me corriger si je comprends quelque chose de mal ici.
Merci.
(J'ai voté pour fermer ceci en tant que doublon possible, mais je pourrais aussi bien ajouter une réponse similaire.)
Lorsque vous utilisez le transport SSH, GitHub vous identifie en tant qu'utilisateur en fonction de la clé SSH que vous utilisez pour vous authentifier. Vous devez donc vous assurer que git utilise une clé SSH pour un référentiel et une autre pour l'autre.
Je vais supposer que:
user1
, et vous avez ajouté à ce compte la clé publique correspondant à votre clé privée locale /home/whoever/.ssh/id_rsa
. Supposons que le référentiel auquel vous souhaitez accéder en tant que user1
est user1/whatever
sur GitHub.user2
et vous avez ajouté à ce compte la clé publique correspondant à votre clé privée locale /home/whoever/.ssh/new/id_rsa
. Supposons que le référentiel auquel vous souhaitez accéder en tant que user2
est user2/whatever
sur GitHub.La façon la plus simple de résoudre ce problème est de créer un nouveau "distant" (c'est-à-dire un surnom pour un référentiel distant) pour chaque référentiel, où le nom d'hôte se trouve dans l'URL de chaque télécommande est en fait un alias que vous avez configuré dans ~/.ssh/config
. (Si ce fichier de configuration n'existe pas, vous devrez le créer.)
Par exemple, une entrée dans le ~/.ssh/config
le fichier pourrait ressembler à:
Host github-as-user1
HostName github.com
User git
IdentityFile /home/whoever/.ssh/id_rsa
Ensuite, vous pouvez ajouter une télécommande appelée gh-user1
, disons, avec:
git remote add gh-user1 git@github-as-user1:user1/whatever.git
... puis si vous voulez pousser votre branche master
vers le référentiel user1/whatever
sur GitHub en utilisant le ~/.ssh/id_rsa
clé, vous pouvez simplement faire:
git Push gh-user1 master
Pour pousser en tant que l'autre utilisateur (user2
) au deuxième référentiel, vous devez vous ajouter un deuxième alias ~/.ssh/config
fichier. Par exemple:
Host gh-as-user2
HostName github.com
User git
IdentityFile /home/whoever/.ssh/new/id_rsa
Ensuite, pour pousser vers ce deuxième référentiel en tant qu'utilisateur différent, vous pouvez simplement faire:
git Push gh-user2 master