Comment travailler avec plusieurs clés ssh [dupliquer]

cette question a déjà une réponse ici:

Utilisateurs De GitHub,

je suis nouveau 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

Première /.SSH dossier (comme d'habitude) (contiennent id_rsa qui a copié en premier compte)

Deuxième /.SSH / nouveau dossier (contient id_rsa qui a copié deuxième compte)

maintenant au moment de la poussée Comment puis-je passer entre la touche ssh?

parce que si je veux pousser pour le deuxième compte il utilisera .clé ssh plutôt. ssh/nouveau et me donne l'erreur.

Veuillez me faire corriger si je suis compris quelque chose de mal ici.

Merci.

31
demandé sur Beau 2012-01-19 14:08:30
la source

1 ответов

(j'ai voté pour fermer ceci comme un duplicata possible, mais je pourrais aussi bien ajouter une réponse similaire de toute façon.)

lors de l'utilisation du transport SSH, GitHub vous identifie en tant qu'utilisateur sur la base de la clé SSH que vous utilisez pour vous authentifier. Vous devez donc vous assurer que git utilise une clé SSH pour un dépôt et une autre pour l'autre.

je vais supposer que:

  1. vous avez un compte GitHub appelé user1 , et vous avez ajouté que compte la clé publique correspondant à votre clé privée /home/whoever/.ssh/id_rsa . Disons que le dépôt auquel vous souhaitez accéder sous le nom de user1 est user1/whatever sur GitHub.
  2. Vous avez un deuxième compte GitHub appelé user2 et vous avez ajouté que compte la clé publique correspondant à votre clé privée /home/whoever/.ssh/new/id_rsa . Disons que le dépôt auquel vous souhaitez accéder sous le nom de user2 est user2/whatever sur GitHub.

la façon la plus simple de gérer cela est de créer un nouveau "remote" (i.e. un surnom pour un dépôt distant) pour chaque dépôt, où le nom d'hôte est dans l'URL de chaque distant est en fait un alias que vous avez mis en place dans ~/.ssh/config . (Si ce fichier de configuration n'existe pas, vous devrez le créer.)

par exemple, une entrée dans le fichier ~/.ssh/config pourrait ressembler à:

Host github-as-user1
  HostName github.com
  User git
  IdentityFile /home/whoever/.ssh/id_rsa

alors vous pouvez ajouter une télécommande appelée gh-user1 , dire, avec:

git remote add gh-user1 [email protected]:user1/whatever.git

... et puis, si vous voulez pousser votre branche master vers le dépôt user1/whatever sur GitHub en utilisant la touche ~/.ssh/id_rsa , vous pouvez simplement faire:

git push gh-user1 master

afin de pousser comme l'autre utilisateur ( user2 ) vers le second dépôt, vous devez ajouter un second alias à votre fichier ~/.ssh/config . Par exemple:

Host gh-as-user2
  HostName github.com
  User git
  IdentityFile /home/whoever/.ssh/new/id_rsa

alors pour pousser à ce second dépôt que l'utilisateur différent, vous pouvez juste faire:

git push gh-user2 master
45
répondu Mark Longair 2012-01-19 14:54:36
la source

Autres questions sur