我需要为GitHub做SSH密钥审计,但我不确定如何找到我的RSA密钥指纹。我最初是按照指南在Linux上生成SSH密钥的。
我需要输入什么命令来查找我当前的RSA密钥指纹?
我需要为GitHub做SSH密钥审计,但我不确定如何找到我的RSA密钥指纹。我最初是按照指南在Linux上生成SSH密钥的。
我需要输入什么命令来查找我当前的RSA密钥指纹?
当前回答
要在第一次连接之前检查远程SSH服务器,可以查看www.server-stats.net/ssh/以查看服务器的所有SHH密钥,以及何时知道密钥。
这与SSL证书不同,但绝对是第一次连接到任何SSH服务器之前必须做的事情。
其他回答
如果您的SSH代理正在运行,那么它就是在运行
ssh-add -l
列出所有身份的RSA指纹,或-L列出公钥。
如果您的代理没有运行,请尝试:
ssh-agent sh -c 'ssh-add; ssh-add -l'
对于您的公钥:
ssh-agent sh -c 'ssh-add; ssh-add -L'
如果您得到这样的消息:'代理没有身份。',然后您必须先通过ssh-keygen生成您的RSA密钥。
谷歌计算引擎在Linux实例的串行输出中显示SSH主机密钥指纹。API可以从GCE获取数据,并且不需要登录到实例。
除了串行输出,我在其他地方都没找到。我认为指纹应该放在对程序员更友好的地方。
然而,这似乎取决于实例的类型。我正在使用Debian 7 (Wheezy) f1-micro的实例。
这是我用来获取SSH密钥指纹以创建DigitalOcean液滴的shell函数:
fingerprint() {
pubkeypath="$1"
ssh-keygen -E md5 -lf "$pubkeypath" | awk '{ print $2 }' | cut -c 5-
}
把它放在你的~/。Bashrc,来源它,然后你可以得到指纹,如下所示:
$ fingerprint ~/.ssh/id_rsa.pub
d2:47:0a:87:30:a0:c0:df:6b:42:19:55:b4:f3:09:b9
有时您可以在~/中有一串键。ssh目录,不知道哪个匹配GitHub/Gitlab/etc显示的指纹。
下面介绍如何显示~/中所有密钥的密钥文件名和MD5指纹。ssh目录:
cd ~/.ssh
find . -type f -exec printf "\n{}\n" \; -exec ssh-keygen -E md5 -lf {} \;
(参数的含义请参见find命令的回答。
请注意,属于一个密钥的私有/公共文件具有相同的指纹,因此您将看到重复的指纹。
较新的SSH命令将指纹列为SHA256密钥。
例如:
ssh-keygen -lf ~/.ssh/id_dsa.pub
1024 SHA256:19n6fkdz0qqmowiBy6XEaA87EuG/jgWUr44ZSBhJl6Y (DSA)
如果您需要将其与旧指纹进行比较,还需要指定使用MD5指纹哈希功能。
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)
同样可用:-E sha1
更新……是的……是的……我知道…SSH的DSA密钥不应该再使用,应该使用较旧的RSA密钥或较新的黄道密钥。
致那些一直编辑我在上面使用的命令的“管理员”。别再改了!您使命令和产生的输出不匹配!