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
Où ~/.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).