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

Supposons que votre répertoire .ssh contienne 30 clés (15 privées et 15 publiques)

Où en GIT , peut-on vérifier lequel est utilisé pour se connecter à un repo distant donné?

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

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

~/.ssh/whatever soit le chemin de votre clé privée

De plus, l’utilisateur et l’hôte peuvent être pris

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

L’exécution de ssh en mode verbeux, alias ssh -v user@host , imprimera une énorme quantité d’informations de débogage, qui contient également des détails sur les fichiers de clés qu’il tente de se connecter.

 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 ceci, avec l’étape 4 de la propre page d’aide SSH de Git, ssh -vT git@github.com peut vous donner la réponse.

Remarque: Vous pouvez également utiliser l’option -i pour indiquer à ssh lors de l’exécution de la commande, quel fichier de clés utiliser.

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

Le fichier par défaut est ~/.ssh/id_rsa ou ~/.ssh/id_dsa ou ~/.ssh/identity selon la version du protocole.

Comme git utilise simplement ssh pour se connecter, il utilisera la clé que ssh utilisera pour se connecter à l’hôte distant. Consultez le fichier ~/.ssh/config pour plus de détails. le bloc host utilise la directive IdentityFile pour spécifier la clé privée à utiliser. La page de ssh_config(5) contient tous les détails.

Sur le serveur distant, éditez le fichier sshd_config et remplacez LogLevel par INFO par VERBOSE et redémarrez ssh.

Votre fichier journal contiendra désormais l’empreinte de la clé utilisée pour authentifier chaque utilisateur.

Sur Ubuntu, ces fichiers sont les suivants:

 /etc/ssh/sshd_config /var/log/auth.log 

mais ils peuvent être différents sur une autre dissortingbution. Juste google pour leur emplacement (certains utilisent / var / log / secure par exemple).