Utiliser une clé spécifiée de ssh-agent

11

Dans le sens de Comment dire à git quelle clé privée utiliser? Je voudrais utiliser une clé ssh spécifique dans une situation donnée.

Mon problème est que même lorsque je spécifie «-i quelque chose», ssh utilise les clés de mon agent ssh dans l'ordre où elles sont ajoutées.

Ma situation particulière:

  • J'ai deux utilisateurs de github, chacun avec sa propre clé, je voudrais - par exemple via une ssh-config - pour chaque clone spécifier quelle clé utiliser:

    Hôte USER1.git

    Nom d'hôte github.com

    User git

    IdentityFile ~ / .ssh / USER1.id_rsa

ssh -vt USER1.git

utilisera toujours USER2.id_rsa s'il s'agit de la clé ajoutée en premier à ssh-agent.

svrist
la source

Réponses:

5

J'ai finalement réussi à le faire fonctionner:

Host USER1.git
  User git
  HostName github.com
  IdentityFile ~/.ssh/USER1.id_rsa

Host USER2.git
  User git
  HostName github.com
  IdentityFile ~/.ssh/USER2.id_rsa
  • L'indentation compte.
  • Faites ssh-add -let assurez-vous que vos deux clés ont été ajoutées.
    • Copiez / collez chaque chemin ssh-add -ldans la ligne appropriée ~/.ssh/configpour éviter les fautes de frappe. S'il existe une ~/.ssh/configfaute de frappe sur le chemin du fichier d'identité pour USER1, la mauvaise clé (clé USER2) sera utilisée à la place.

J'ai reçu les instructions sur BitBucket. Ils devraient fonctionner pour GitHub car la seule différence est HostName: http://confluence.atlassian.com/pages/viewpage.action?pageId=271943168#ConfiguringMultipleSSHIdentitiesforGitBashMacOSXLinux-CreateaSSHconfigfile

Pour que cela fonctionne sur un serveur distant à l'aide du transfert d'agent, essayez la suggestion de @ stijn-hoop ci-dessous (dans la section commentaires de cette réponse).

dgo.a
la source
3
Pour votre dernier commentaire sur le transfert d'agent, consultez cette réponse: superuser.com/questions/273037/…
Stijn Hoop
1

À utiliser IdentitiesOnly yessous ces hôtes, dans .ssh / config.

Puma
la source
1
mais il n'utilisera pas l'agent et ne me forcera pas à saisir la phrase secrète pour toutes les connexions github
svrist
1
Oui, c'est comme ça que ça marche. Vous ne pouvez pas choisir entre différentes clés lorsque vous utilisez ssh-agent. Une façon consiste à démarrer plusieurs agents ssh et à basculer entre eux en utilisant différents wrappers pour différentes opérations github ou simplement en basculant entre les agents ssh (en changeant SSH_AUTH_SOCK)
Cougar
6
Le commentaire ci-dessus est incorrect - vous POUVEZ choisir des identités dans votre agent ssh. Voir aussi la réponse que j'ai déjà mentionnée ci-dessus, superuser.com/questions/273037/…
Stijn Hoop
0

Le point est d'utiliser le fichier de clé publique à l' intérieur de la IdentityFiledirective.

Host USER1.git
  User git
  HostName github.com
  IdentityFile ~/.ssh/USER1.id_rsa.pub

Host USER2.git
  User git
  HostName github.com
  IdentityFile ~/.ssh/USER2.id_rsa.pub

Si nous spécifions la clé privée dans la configuration SSH, l'agent SSH ne choisira pas la bonne clé si la clé privée est chiffrée.

Une question similaire sur stackexchange: https://unix.stackexchange.com/a/495785/264704

ttimasdf
la source