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é?
L'entrée suivante dans .ssh/config
le fichier résout le problème
Host git.assembla.com
user git
identityfile ~/.ssh/whatever
Où ~/.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
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.
À 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.
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.
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!
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).