我需要为GitHub做SSH密钥审计,但我不确定如何找到我的RSA密钥指纹。我最初是按照指南在Linux上生成SSH密钥的。
我需要输入什么命令来查找我当前的RSA密钥指纹?
我需要为GitHub做SSH密钥审计,但我不确定如何找到我的RSA密钥指纹。我最初是按照指南在Linux上生成SSH密钥的。
我需要输入什么命令来查找我当前的RSA密钥指纹?
当前回答
如果您的密钥在SSH代理中,最快的方法是:
$ ssh-add -L | ssh-keygen -E md5 -lf /dev/stdin
代理中的每个键将被打印为:
4096 MD5:8f:c9:dc:40:ec:9e:dc:65:74:f7:20:c1:29:d1:e8:5a /Users/cmcginty/.ssh/id_rsa (RSA)
其他回答
执行以下命令获取SSH密钥的SHA256指纹(-l表示“列表”,而不是创建新密钥,-f表示“文件名”):
$ ssh-keygen -lf /path/to/ssh/key
例如,在我的机器上,我运行的命令是(使用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)
要使用更新版本的ssh-keygen获取GitHub (MD5)指纹格式,请运行:
$ ssh-keygen -E md5 -lf <fileName>
附加信息:
Ssh-keygen -lf也适用于known_hosts和authorized_keys文件。
要查找Linux/Unix/OS X系统上的大部分公钥,请运行
$ find /etc/ssh /home/*/.ssh /Users/*/.ssh -name '*.pub' -o -name 'authorized_keys' -o -name 'known_hosts'
(如果你想查看其他用户的homedirs内部,你必须是root或sudo。)
ssh-add -l非常类似,但是列出了添加到代理的密钥的指纹。(OS X用户请注意,通过Keychain实现神奇的无密码SSH与使用SSH -agent是不同的。)
要在第一次连接之前检查远程SSH服务器,可以查看www.server-stats.net/ssh/以查看服务器的所有SHH密钥,以及何时知道密钥。
这与SSL证书不同,但绝对是第一次连接到任何SSH服务器之前必须做的事情。
要在Ubuntu上查看密钥,只需在终端上输入以下命令:
ssh-add - l
你会得到这样的输出: 2568 0j:20:4b:88:a7:9t:wd:19:f0:d4:4y:9g:27:cf:97:23 yourName@ubuntu (RSA)
如果你得到一个错误,比如;无法打开到您的身份验证代理的连接。 这意味着ssh-agent没有运行。你可以用以下命令启动/运行它: ssh-agent bash(感谢评论中的@Richard),然后重新运行ssh-add -l
这是我用来获取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-keygen -y -f key > key.pub && ssh-keygen -lf key.pub