indicateur ssh '-i' n'utilisant pas la clé fournie pour s'authentifier

J'ai réalisé au cours des derniers mois que l'indicateur de commande "-i" du ssh (qui fait référence à spécifier un fichier d'identité) ne fonctionne pas correctement lorsque j'essaie de m'authentifier auprès d'un serveur.

D'après ce que j'ai compris, je pourrais utiliser cet indicateur pour spécifier une clé ssh à authentifier auprès du serveur, évitant la nécessité de tester chaque clé ajoutée à mon agent et éventuellement de déborder les tentatives de connexion.

Ce que j'essaie maintenant, c'est de changer l'utilisateur pour qu'il s'authentifie sur git (la question n'est pas spécifique à git), et ce qui se passe est ceci:

  • J'ai deux clés ssh qui s'authentifient sur github, appelons-les user1.pem et utilisateur2.pem.
  • utilisateur1.pem s'authentifie auprès de user1 dans github et user2.pem s'authentifie auprès de l'utilisateur2.
  • J'exécute la commande "ssh-T git@github.com ", il s'authentifie auprès de l'utilisateur1.
  • J'exécute la commande "ssh-T-i~/.ssh/utilisateur2.pem git@github.com ", il continue à s'authentifier auprès de l'utilisateur1.

Il n'y a pas de problème à tous avec les clés, les deux ont été ajoutés à l'agent et ils ont les autorisations de fichier correctes.
Pour contourner cela, j'ai dû supprimer toutes les clés de mon agent et rajouter uniquement l'utilisateur2.pem, puis il s'est authentifié à user2.

Juste pour répéter, ce n'est PAS spécifique à git, car j'ai également eu ce problème avec les serveurs Linux courants, et je n'ai trouvé aucune solution à part configurer les hôtes dans le fichier ~/.ssh/config. J'utilise git comme exemple simplement parce qu'il est plus facile à tester.

Suis-je utiliser le drapeau "ssh-i" dans le mauvais sens?

demandé sur