我需要为GitHub做SSH密钥审计,但我不确定如何找到我的RSA密钥指纹。我最初是按照指南在Linux上生成SSH密钥的。
我需要输入什么命令来查找我当前的RSA密钥指纹?
我需要为GitHub做SSH密钥审计,但我不确定如何找到我的RSA密钥指纹。我最初是按照指南在Linux上生成SSH密钥的。
我需要输入什么命令来查找我当前的RSA密钥指纹?
当前回答
密钥对(私钥和公钥)将具有相同的指纹;因此,在你不记得哪个私钥属于哪个公钥的情况下,通过比较他们的指纹来找到匹配。
投票最多的答案是Marvin Vinto提供了一个公共SSH密钥文件的指纹。也可以查询对应的SSH私钥指纹,但需要较长的一系列步骤,如下图所示。
Load the SSH agent, if you haven't done so. The easiest way is to invoke $ ssh-agent bash or $ ssh-agent tcsh (or another shell you use). Load the private key you want to test: $ ssh-add /path/to/your-ssh-private-key You will be asked to enter the passphrase if the key is password-protected. Now, as others have said, type $ 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:... is the fingerprint you are after. If there are multiple keys, multiple lines will be printed, and the last line contains the fingerprint of the last loaded key. If you want to stop the agent (i.e., if you invoked step 1 above), then simply type `exit' on the shell, and you'll be back on the shell prior to the loading of ssh agent.
我没有添加新的信息,但希望这个答案对所有级别的用户都很清楚。
其他回答
$ ssh-add -l
也适用于Mac OS X v10.8 (Mountain Lion) - v10.10 (Yosemite)。
它还支持-E选项来指定指纹格式,因此在需要MD5的情况下(它经常被使用,例如GitHub),只需在命令中添加-E MD5。
要在第一次连接之前检查远程SSH服务器,可以查看www.server-stats.net/ssh/以查看服务器的所有SHH密钥,以及何时知道密钥。
这与SSL证书不同,但绝对是第一次连接到任何SSH服务器之前必须做的事情。
有时您可以在~/中有一串键。ssh目录,不知道哪个匹配GitHub/Gitlab/etc显示的指纹。
下面介绍如何显示~/中所有密钥的密钥文件名和MD5指纹。ssh目录:
cd ~/.ssh
find . -type f -exec printf "\n{}\n" \; -exec ssh-keygen -E md5 -lf {} \;
(参数的含义请参见find命令的回答。
请注意,属于一个密钥的私有/公共文件具有相同的指纹,因此您将看到重复的指纹。
在这里从AWS论坛复制内容,因为我发现它对我的用例很有用——我想检查哪些密钥与我导入AWS的密钥匹配
Openssl pkey -in ~/.ssh/ec2/primary.使用实例openssl md5 -c . pem -pubout -outform DER |
地点:
主要的Pem是要检查的私钥
注意,这与ssh-keygen计算的指纹不同。
在Windows上,如果您正在运行PuTTY/Pageant,则当您将PuTTY (.ppk)密钥加载到Pageant中时会列出指纹。它非常有用,以防你忘记你在用哪一个。