Zak*_*off 874 ssh rsa ssh-keys
我需要为GitHub进行SSH密钥审核,但我不确定如何找到我的RSA密钥指纹.我最初按照指南在Linode主持的Ubuntu 10.04(Lucid Lynx)盒子上进行设置.
如果使用PuTTY远程登录,我需要输入什么命令来查找当前的RSA密钥指纹?
Mar*_*nto 1199
运行以下命令以检索SSH密钥指纹(-l表示"列表"而不是创建新密钥,-f表示"文件名"):
$ ssh-keygen -lf /path/to/ssh/key
Run Code Online (Sandbox Code Playgroud)
例如,在我的机器上,我运行的命令是(使用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)
Run Code Online (Sandbox Code Playgroud)
使用较新版本的ssh-keygen,ssh-keygen -lf如果你想要与旧版本相同的格式运行(感谢Lloyd Dewolf).
奖金信息:
known_hosts也适用于authorized_keys和ssh-add -l文件.
在Linux/Unix/OS X系统上找到最公开的-l(如果你想看到其他用户的homedirs,你必须是root或sudo.)
将-f是非常相似,但列出了添加到您的代理键的指纹.(OS X用户注意到通过Keychain进行魔术无密码SSH与使用ssh-agent不同.)
ant*_*ony 655
较新的SSH命令会将指纹列为SHA256密钥.
例如:
ssh-keygen -lf ~/.ssh/id_dsa.pub
1024 SHA256:19n6fkdz0qqmowiBy6XEaA87EuG/jgWUr44ZSBhJl6Y (DSA)
Run Code Online (Sandbox Code Playgroud)
如果需要将其与旧指纹进行比较,还需要指定使用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)
Run Code Online (Sandbox Code Playgroud)
也提供: -E sha1
更新......是......是的......我知道......不应再使用SSH的DSA密钥,而应使用旧的RSA密钥或更新的黄道键.
对那些继续编辑我在上面使用的命令的"管理员".停止改变它!您使命令和结果输出不匹配!
Kom*_*omu 25
要在Ubuntu上查看密钥,只需在终端上输入以下命令:
ssh-add -l
您将获得如下输出:
2568 0j:20:4b:88:a7:9t:wd:19:f0:d4:4y:9g:27:cf:97:23yourName @ ubuntu(RSA)
但是如果你得到错误的话; Could not open a connection to your authentication agent.
那么这意味着ssh-agent没有运行.您可以使用以下命令启动/运行它
ssh-agent bash(感谢评论中的@Richard),然后重新运行ssh-add -l
Wir*_*nto 17
密钥对(私钥和公钥)将具有相同的指纹; 因此,如果您不记得哪个私钥属于哪个公钥,请通过比较其指纹来查找匹配项.
Marvin Vinto投票最多的答案提供了公共 SSH密钥文件的指纹.也可以查询相应私有 SSH密钥的指纹,但需要更长的一系列步骤,如下所示.
如果尚未加载SSH代理,请加载SSH代理.最简单的方法是调用
$ ssh-agent bash
Run Code Online (Sandbox Code Playgroud)
要么
$ ssh-agent tcsh
Run Code Online (Sandbox Code Playgroud)
(或您使用的其他外壳).
加载要测试的私钥:
$ ssh-add /path/to/your-ssh-private-key
Run Code Online (Sandbox Code Playgroud)
如果密钥受密码保护,将要求您输入密码.
现在,正如其他人所说,输入
$ ssh-add -l
1024 fd:bc:8a:81:58:8f:2c:78:86:a2:cf:02:40:7d:9d:3c you@yourhost (DSA)
Run Code Online (Sandbox Code Playgroud)
fd:bc:...是你追求的指纹.如果有多个键,则将打印多行,最后一行包含最后加载的键的指纹.
如果你想要停止代理(即,如果你调用了上面的第1步),那么只需在shell上输入`exit',你就可以在加载ssh代理之前返回shell.
我没有添加新信息,但希望这个答案对所有级别的用户都很清楚.
cmc*_*nty 12
密钥在SSH代理中的最快方法:
$ ssh-add -L | ssh-keygen -E md5 -lf /dev/stdin
Run Code Online (Sandbox Code Playgroud)
代理中的每个密钥将打印为:
4096 MD5:8f:c9:dc:40:ec:9e:dc:65:74:f7:20:c1:29:d1:e8:5a /Users/cmcginty/.ssh/id_rsa (RSA)
Run Code Online (Sandbox Code Playgroud)
小智 9
$ ssh-add -l
Run Code Online (Sandbox Code Playgroud)
也适用于Mac OS X v10.8(Mountain Lion) - v10.10(Yosemite).
它还支持-E指定指纹格式的选项,因此如果需要MD5(经常使用它,例如GitHub),只需添加-E md5到命令即可.
这是我用来获取用于创建DigitalOcean水滴的SSH键指纹的shell函数:
fingerprint() {
pubkeypath="$1"
ssh-keygen -E md5 -lf "$pubkeypath" | awk '{ print $2 }' | cut -c 5-
}
Run Code Online (Sandbox Code Playgroud)
把它放在你的~/.bashrc,源它,然后你可以得到指纹如下:
$ fingerprint ~/.ssh/id_rsa.pub
d2:47:0a:87:30:a0:c0:df:6b:42:19:55:b4:f3:09:b9
Run Code Online (Sandbox Code Playgroud)
有时,您的目录中可能有一堆密钥~/.ssh,但不知道哪个与 GitHub/Gitlab/etc 显示的指纹匹配。
以下是显示目录中所有密钥的密钥文件名和 MD5 指纹的方法~/.ssh:
cd ~/.ssh
find . -type f -exec printf "\n{}\n" \; -exec ssh-keygen -E md5 -lf {} \;
Run Code Online (Sandbox Code Playgroud)
请注意,属于一个密钥的私有/公共文件具有相同的指纹,因此您会看到重复项。
| 归档时间: |
|
| 查看次数: |
601188 次 |
| 最近记录: |