133 votes

Git et SSH, quelle clé est utilisée ?

Dites votre .ssh contient 30 clés (15 privées et 15 publiques).

Où dans Git peut-on vérifier lequel est utilisé pour se connecter à un dépôt distant donné ?

88voto

Jam Points 13872

L'entrée suivante dans .ssh/config Le fichier résout le problème

  host git.assembla.com
  user git
  identityfile ~/.ssh/whatever

~/.ssh/whatever est un chemin vers votre clé privée

En outre, l'utilisateur et l'hôte peuvent être pris en charge à partir de

git push git@git.assembla.com:repo_name.git
         ^__ ^_______________
         user host

86voto

Vajk Hermecz Points 1057

Exécution de ssh en mode verbeux, alias ssh -v user@host L'utilisation de l'outil de déboguage, qui contient également des détails sur les fichiers de clé qu'il essaie d'utiliser pour la connexion, imprimera un grand nombre d'informations de déboguage.

debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/user/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 332
debug1: read PEM private key done: type RSA
debug1: Authentication succeeded (publickey).

Maintenant, si vous combinez cela, avec l'étape 4 dans le propre Git. Page d'aide SSH , ssh -vT git@github.com peut vous donner la réponse.

Remarque : vous pouvez également utiliser le -i pour indiquer à ssh, lors de l'exécution de la commande, le fichier clé à utiliser.

30voto

poige Points 166

Je dirais que le plus pratique à mon goût serait.. :

GIT_SSH_COMMAND='ssh -v' git …

Bien sûr, selon les circonstances, il peut être avantageux de l'exporter vers l'environnement actuel de SHELL afin de ne pas avoir à le précéder manuellement à chaque fois. Ce serait alors comme ça :

export GIT_SSH_COMMAND='ssh -v'
git …

- Comme man git suggère qu'il y a quelques variables environnementales qui pourraient affecter les opérations de Git avec l'utilisation de SSH. Selon le man ssh vous pouvez obtenir des informations de débogage lors du déploiement. -v (pas seulement mais aussi, consultez le manuel si vous êtes curieux d'en savoir plus).

quelle clé est utilisée ?

Dans la sortie, vous verrez quelque chose comme

debug1: Offering public key: …

ce qui est la réponse à votre question.

17voto

Rodrigo Flores Points 1329

À moins qu'elle ne soit spécifiée dans le .ssh/config il utilisera le fichier de clé privée par défaut.

Le fichier par défaut est ~/.ssh/id_rsa o ~/.ssh/id_dsa o ~/.ssh/identity en fonction de la version du protocole.

13voto

Moak Points 4068

C'est peut-être un peu marginal, mais après avoir lancé ssh -vT git@github.com il m'a montré qu'il vérifiait /root/.ssh pour les clés, je m'attendais à ce qu'il vérifie mon répertoire personnel, puis j'ai réalisé que j'étais connecté en tant que Root !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X