web-dev-qa-db-fra.com

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

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

Où dans Git peut-on vérifier lequel est utilisé pour se connecter à un référentiel distant donné?

65
JAM

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 d'accès à votre clé privée

De plus, l'utilisateur et l'hôte peuvent être récupérés sur

git Push [email protected]:repo_name.git
         ^__ ^_______________
         user Host
52
JAM

Exécuter ssh en mode verbeux, alias ssh -v user@Host, affichera une énorme quantité d'informations de débogage, qui contient également des détails sur les fichiers de clés qu'il essaie 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 cela, avec l'étape 4 dans le propre Git page d'aide SSH , ssh -vT [email protected] peut vous donner la réponse.

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

55
Vajk Hermecz

À moins qu'il ne soit spécifié sur le .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.

8
Rodrigo Flores

Puisque git utilise simplement ssh pour se connecter, il utilisera la clé que ssh utiliserait pour se connecter à l'hôte distant. Voir 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 manuel ssh_config(5) contient tous les détails.

5
sarnold

Cela peut être super Edge, mais après avoir exécuté ssh -vT [email protected] 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!

3
Moak

Sur le serveur distant, modifiez le fichier sshd_config et changez LogLevel d'INFO en VERBOSE et redémarrez ssh.

Maintenant, votre fichier journal contiendra l'empreinte digitale de la clé qui a été utilisée pour authentifier chaque utilisateur.

Sur Ubuntu, ces fichiers sont:

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

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

1
seumasmac