Je dois faire l'audit de clé SSH pour GitHub, mais je ne sais pas comment trouver mon empreinte digitale de clé RSA. J'ai initialement suivi un guide pour générer une clé SSH sous Linux.
Quelle est la commande que je dois entrer pour trouver mon empreinte digitale de clé RSA actuelle?
function fingerprint() { ssh-keygen -lf $1 -E md5 }
Ensuite (après avoir source le bashrc), vous pouvez obtenir une empreinte digitale avecfingerprint ~/.ssh/key_file
;
dans le corps, alors utilisezfunction fingerprint() { ssh-keygen -lf $1 -E md5; }
plutôt.Réponses:
Exécutez la commande suivante pour récupérer l'empreinte SHA256 de votre clé SSH (
-l
signifie «liste» au lieu de créer une nouvelle clé,-f
signifie «nom de fichier»):Ainsi, par exemple, sur ma machine, la commande que j'ai exécutée était (à l'aide de la clé publique RSA):
Pour obtenir le format d'empreinte digitale GitHub (MD5) avec les nouvelles versions de ssh-keygen, exécutez:
Informations bonus:
ssh-keygen -lf
fonctionne également surknown_hosts
etauthorized_keys
fichiers.Pour trouver la plupart des clés publiques sur les systèmes Linux / Unix / OS X, exécutez
(Si vous voulez voir l'intérieur des homedirs des autres utilisateurs, vous devrez être root ou sudo.)
Le
ssh-add -l
est très similaire, mais répertorie les empreintes digitales des clés ajoutées à votre agent. (Les utilisateurs d'OS X prennent note que la magie sans mot de passe SSH via le trousseau n'est pas la même chose que l'utilisation de ssh-agent.)la source
.ssh/id_rsa
devrait être la même que celle de.ssh/id_rsa.pub
. Donc, vous pouvez utiliser l'un ou l'autre (et, si vous êtes comme moi et que vous aimez le tabulation, cela fait que le travail prend 2 touches de moins. Efficacité!).ssh-keygen -E md5 -lf ~/.ssh/id_rsa.pub
si vous ne voulez pas la sortie standard sha256Les nouvelles commandes SSH répertorieront les empreintes digitales en tant que clé SHA256 .
Par exemple:
Si vous devez le comparer à une ancienne empreinte digitale, vous devez également spécifier d'utiliser la fonction de hachage d'empreinte digitale MD5 .
Aussi disponible:
-E sha1
Mise à jour ... OUI ... oui ... Je sais ... Les clés DSA pour SSH ne devraient plus être utilisées, l'ancienne clé RSA ou les nouvelles clés écliptiques devraient être utilisées à la place.
À ces «administrateurs» qui continuent de modifier la commande que j'ai utilisée dans ce qui précède. Arrêtez de le changer! Vous faites la commande et la sortie qui en résulte ne correspondent pas!
la source
ssh
de vous montrer l'ancienne empreinte digitale MD5 du serveurssh -o FingerprintHash=md5 example.org
, comme mentionné dans cette réponse . (Je cherchais juste cela, et cette réponse m'a conduit à celle-ci, donc je pense que d'autres pourraient avoir une expérience similaire.)Pour voir votre clé sur Ubuntu, entrez simplement la commande suivante sur votre terminal:
ssh-add -l
Vous obtiendrez une sortie comme celle-ci:
2568 0j:20:4b:88:a7:9t:wd:19:f0:d4:4y:9g:27:cf:97:23
yourName @ ubuntu (RSA)Si toutefois vous obtenez une erreur comme;
Could not open a connection to your authentication agent.
Cela signifie alors que ssh-agent n'est pas en cours d'exécution. Vous pouvez le démarrer / l'exécuter avec:
ssh-agent bash
(merci à @Richard dans les commentaires) puis relancerssh-add -l
la source
ssh-agent bash
et poursuivre la vie. Dans la vie comme toujours;ssh-agent
n'est pas garanti comme une implémentation cohérente sur tous les systèmes.Une paire de clés (les clés privée et publique) aura la même empreinte digitale; dans le cas où vous ne vous souvenez pas quelle clé privée appartient à quelle clé publique, trouvez la correspondance en comparant leurs empreintes digitales.
La réponse la plus votée de Marvin Vinto fournit l'empreinte digitale d'un fichier de clé SSH public . L'empreinte digitale de la clé SSH privée correspondante peut également être interrogée, mais elle nécessite une série d'étapes plus longue, comme indiqué ci-dessous.
Chargez l'agent SSH, si vous ne l'avez pas encore fait. Le moyen le plus simple consiste à invoquer
ou
(ou un autre shell que vous utilisez).
Chargez la clé privée que vous souhaitez tester:
Il vous sera demandé de saisir la phrase secrète si la clé est protégée par mot de passe.
Maintenant, comme d'autres l'ont dit, tapez
fd:bc:...
est l'empreinte digitale que vous recherchez. S'il y a plusieurs clés, plusieurs lignes seront imprimées et la dernière ligne contient l'empreinte digitale de la dernière clé chargée.Si vous voulez arrêter l'agent (c'est-à-dire si vous avez appelé l'étape 1 ci-dessus), tapez simplement `exit 'sur le shell, et vous serez de retour sur le shell avant le chargement de l'agent ssh.
Je n'ajoute pas de nouvelles informations, mais j'espère que cette réponse est claire pour les utilisateurs de tous niveaux.
la source
ssh-add -l
etssh-keygen -l
renvoie la même empreinte digitale pour une paire de clés donnée. En outre, il doit être en minuscules-l
et non en majuscules.ssh-add -l
etssh-keygen -l
renvoie la même empreinte digitale pour une paire de clés donnée. Mais je ne comprends pas ce qui n'allait pas avec mes déclarations originales sur le premier paragraphe. J'ai ajouté une phrase pour clarifier.ssh-agent
. En supposant quePRIVKEY
le fichier de clé privéePUBKEY
a été défini et qu'il a été défini sur le fichier de clé publique (initialement inexistant), faites:ssh-keygen -y -f "${PRIVKEY}" > "${PUBKEY}"
pour régénérer la clé publique SSH, alorsssh-keygen -E md5 -l -v -f "${PUBKEY}"
si vous voulez le hachage MD5 ou simplementssh-keygen -l -v -f "${PUBKEY}"
si vous voulez le hachage SHA-256 (SHA-256 étant la valeur par défaut maintenant).Le moyen le plus rapide si vos clés sont dans un agent SSH:
Chaque clé de l'agent sera imprimée comme suit:
la source
Reproduire le contenu des forums AWS ici, car je l'ai trouvé utile pour mon cas d'utilisation - je voulais vérifier laquelle de mes clés correspondait à celles que j'avais importées dans AWS
openssl pkey -in ~/.ssh/ec2/primary.pem -pubout -outform DER | openssl md5 -c
Où: -
primary.pem
est la clé privée à vérifierla source
fonctionnera également sur Mac OS X v10.8 (Mountain Lion) - v10.10 (Yosemite).
Il prend également en charge l'option
-E
de spécifier le format d'empreinte digitale, donc dans le cas où MD5 est nécessaire (il est souvent utilisé, par exemple par GitHub), ajoutez simplement-E md5
à la commande.la source
man ssh-add
l'option-l
est "Liste les empreintes digitales de toutes les identités actuellement représentées par l'agent"Sous Windows, si vous exécutez PuTTY / Pageant, l'empreinte digitale est répertoriée lorsque vous chargez votre clé PuTTY (.ppk) dans Pageant. C'est assez utile au cas où vous oublieriez celui que vous utilisez.
la source
C'est la fonction shell que j'utilise pour obtenir mon empreinte digitale SSH pour créer des gouttelettes DigitalOcean :
Mettez-le dans votre
~/.bashrc
, sourcez-le, puis vous pouvez obtenir l'empreinte digitale comme suit:la source
Si votre agent SSH est en cours d'exécution, il est
pour répertorier les empreintes digitales RSA de toutes les identités ou
-L
pour répertorier les clés publiques.Si votre agent n'est pas en cours d'exécution, essayez:
Et pour vos clés publiques:
Si vous obtenez le message: « L'agent n'a pas d'identité. ', vous devez d'abord générer votre clé RSA
ssh-keygen
.la source
/etc/ssh/ssh_host_ed25519_key.pub
. La deuxième partie de la question demeure: un inconvénient à utiliser cette clé générée automatiquement?Parfois, vous pouvez avoir un tas de clés dans votre
~/.ssh
répertoire, et vous ne savez pas qui correspond à l'empreinte digitale affichée par GitHub / Gitlab / etc.Voici comment afficher les noms de fichiers clés et les empreintes digitales MD5 de toutes les clés de votre
~/.ssh
répertoire:(Pour ce que signifient les paramètres, reportez-vous à cette réponse sur la
find
commande .Notez que les fichiers privés / publics qui appartiennent à une clé ont la même empreinte digitale, vous verrez donc des doublons.
la source
Google Compute Engine affiche l'empreinte de la clé d'hôte SSH dans la sortie série d'une instance Linux. L'API peut obtenir ces données de GCE, et il n'est pas nécessaire de se connecter à l'instance.
Je ne l'ai trouvé nulle part ailleurs que dans la sortie série. Je pense que l'empreinte digitale devrait être dans un endroit plus convivial pour les programmeurs.
Cependant, il semble que cela dépend du type d'instance. J'utilise des instances de Debian 7 (Wheezy) f1-micro.
la source
Pour vérifier un serveur SSH distant avant la première connexion, vous pouvez consulter le site www.server-stats.net/ssh/ pour voir toutes les clés SHH du serveur, ainsi que lorsque la clé est connue.
Ce n'est pas comme un certificat SSL, mais c'est incontournable avant de vous connecter à un serveur SSH pour la première fois.
la source
Sur Fedora, je fais
locate ~/.ssh
ce qui me dit que les clés sont àla source
~/.ssh/id*.pub
c'est) et veut obtenir leurs empreintes digitales.