Comment puis-je trouver mon empreinte RSA key?
Je dois faire L'audit de clé SSH pour GitHub, mais je ne suis pas sûr de savoir comment trouver mon empreinte de clé RSA. J'ai initialement suivi un guide pour faire la configuration sur une boîte Ubuntu 10.04 (Lucid Lynx) hébergée par Linode.
Quelle est la commande que je dois entrer pour trouver mon empreinte RSA actuelle si je suis connecté à distance en utilisant PuTTY?
12 réponses
Exécutez la commande suivante pour récupérer votre empreinte de clé SSH (-l
signifie "liste" au lieu de créer une nouvelle clé, -f
signifie "nom de fichier"):
$ ssh-keygen -lf /path/to/ssh/key
Ainsi, par exemple, sur ma machine, la commande que j'ai exécutée était (en utilisant la clé publique RSA):
$ ssh-keygen -lf ~/.ssh/id_rsa.pub
2048 00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff /Users/username/.ssh/id_rsa.pub (RSA)
, Avec les nouvelles versions de ssh-keygen, exécutez ssh-keygen -E md5 -lf <fileName>
si vous voulez le même format que l'ancien (merci, Lloyd Dewolf).
Informations Bonus:
ssh-keygen -lf
fonctionne également sur known_hosts
et authorized_keys
fichiers.
Trouver le plus public sur un Système Linux / Unix / OS X avec find /etc/ssh /home/*/.ssh /Users/*/.ssh -name '*.pub' -o -name 'authorized_keys' -o -name 'known_hosts'
(Si vous voulez voir à l'intérieur des homedirs des autres utilisateurs, vous devrez être root ou sudo.)
Le {[9] } 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 magic passwordless SSH via Keychain n'est pas la même chose que l'utilisation de ssh-agent.)
Les nouvelles commandes SSH listeront les empreintes digitales comme SHA256 la clé.
Par exemple:
ssh-keygen -lf ~/.ssh/id_dsa.pub
1024 SHA256:19n6fkdz0qqmowiBy6XEaA87EuG/jgWUr44ZSBhJl6Y (DSA)
Si vous devez le comparer à une ancienne empreinte digitale, vous devez également spécifier pour utiliser le MD5 fonction de hachage d'empreintes digitales.
ssh-keygen -E md5 -lf ~/.ssh/id_dsa.pub
2048 MD5:4d:5b:97:19:8c:fe:06:f0:29:e7:f5:96:77:cb:3c:71 (DSA)
Aussi disponible: -E sha1
Mise à jour... OUI... Les clés DSA pour SSH ne doivent plus être utilisées, l'ancienne clé RSA ou les clés ecliptic plus récentes doivent être utilisées à la place.
Aux 'admins' qui continuent à éditer la commande que j'ai utilisée dans ce qui précède. ARRÊTER DE LE CHANGER!
Pour voir votre clé sur Ubuntu, entrez simplement la commande suivante sur votre terminal:
ssh-add -l
Vous obtiendrez une sortie comme ceci:
2568 0j:20:4b:88:a7:9t:wd:19:f0:d4:4y:9g:27:cf:97:23
votrenom@ubuntu (RSA)
Toutefois, Si vous obtenez une erreur comme; Could not open a connection to your authentication agent.
Ensuite, cela signifie que ssh-agent ne fonctionne pas. Vous pouvez démarrer/exécuter avec:
ssh-agent bash
(Merci à @ Richard dans les commentaires) puis relancez ssh-add -l
Une paire de clés (les clés privées et publiques) aura la même empreinte digitale; donc dans le cas où vous ne pouvez pas vous rappeler quelle clé privée appartient à quelle clé publique, trouvez la correspondance en comparant leurs empreintes digitales.
La réponse la plus votée par Marvin Vinto fournit l'empreinte d'un fichier de clé SSH public. L'empreinte digitale de la clé SSH private correspondante peut également être interrogée, mais elle nécessite une série d'étapes plus longue, comme indiqué ci-dessous.
-
Charge le SSH agent, si vous ne l'avez pas fait. Le moyen le plus simple est d'invoquer
$ ssh-agent bash
Ou
$ ssh-agent tcsh
(ou un autre shell que vous utilisez).
-
Chargez la clé privée que vous souhaitez tester:
$ ssh-add /path/to/your-ssh-private-key
Il vous sera demandé d'entrer la phrase secrète si la clé est protégée par un mot de passe.
-
Maintenant, comme d'autres l'ont dit, tapez
$ ssh-add -l 1024 fd:bc:8a:81:58:8f:2c:78:86:a2:cf:02:40:7d:9d:3c you@yourhost (DSA)
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 le empreinte de la dernière clé chargée. Si vous voulez arrêter l'agent (c'est-à-dire si vous avez invoqué 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 les niveaux.
Le moyen le plus rapide si vos clés sont dans un agent SSH:
$ ssh-add -L | ssh-keygen -E md5 -lf /dev/stdin
Chaque clé de l'agent sera imprimée comme suit:
4096 MD5:8f:c9:dc:40:ec:9e:dc:65:74:f7:20:c1:29:d1:e8:5a /Users/cmcginty/.ssh/id_rsa (RSA)
Reproduire le contenu D'AWS forums ici, parce que je l'ai trouvé utile à 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 pour vérifier
$ ssh-add -l
Fonctionnera également sur Mac OS X v10. 8 (Mountain Lion) - v10.10 (Yosemite).
Il prend également en charge l'option -E
pour spécifier le format d'empreinte digitale donc dans le cas où MD5 est nécessaire (il est souvent utilisé, par exemple par GitHub), il suffit d'ajouter -E md5
à la commande.
C'est la fonction shell que j'utilise pour obtenir l'empreinte de ma clé SSH pour créer des gouttelettes DigitalOcean :
fingerprint() {
pubkeypath="$1"
ssh-keygen -E md5 -lf "$pubkeypath" | awk '{ print $2 }' | cut -c 5-
}
Mettez - le dans votre ~/.bashrc
, source-le, et ensuite vous pouvez obtenir l'empreinte digitale comme ceci:
$ fingerprint ~/.ssh/id_rsa.pub
d2:47:0a:87:30:a0:c0:df:6b:42:19:55:b4:f3:09:b9
Sous Windows, si vous utilisez PuTTY / Pageant, l'empreinte digitale est répertoriée lorsque vous chargez votre PuTTY (.ppk) clé dans Pageant. C'est très utile au cas où vous oublieriez celui que vous utilisez.
Si votre agent SSH est en cours d'exécution, c'est
ssh-add -l
Pour lister les empreintes RSA de toutes les identités, ou -L
pour lister les clés publiques.
Si votre agent n'est pas en cours d'exécution, essayez:
ssh-agent sh -c 'ssh-add; ssh-add -l'
Et pour vos clés publiques:
ssh-agent sh -c 'ssh-add; ssh-add -L'
Si vous recevez le message: ' L'agent n'a pas d'identité.', alors vous devez d'abord générer votre clé RSA par ssh-keygen
.
Pour vérifier un serveur SSH distant avant la première connexion, vous pouvez jeter un oeil à www.server-stats.net/ssh / {[2] } pour voir toutes les clés SHH du serveur, ainsi qu'à partir du moment où la clé est connue.
Ce n'est pas comme un certificat SSL, mais certainement un must-do avant de se connecter à un serveur SSH pour la première fois.
Google Compute Engine affiche l'empreinte de la clé hôte SSH dans la sortie série D'une instance Linux. L'API peut obtenir ces données à partir de GCE, et il n'est pas nécessaire de se connecter à l'instance.
Je ne l'ai trouvé nulle part ailleurs que de la sortie série. Je pense que l'empreinte devrait être dans un endroit plus convivial pour les programmeurs.
Cependant, il semble que cela dépend du type d'une instance. J'utilise des instances de Debian 7 (Wheezy) f1-micro.