Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Github 计算RSA密钥指纹_Github_Ssh_Rsa_Ssh Keys - Fatal编程技术网

Github 计算RSA密钥指纹

Github 计算RSA密钥指纹,github,ssh,rsa,ssh-keys,Github,Ssh,Rsa,Ssh Keys,我需要对GitHub执行SSH密钥审核,但我不确定如何找到我的RSA密钥指纹。我最初按照指南在Linux上生成SSH密钥 查找当前RSA密钥指纹需要输入什么命令?运行以下命令以检索SSH密钥的SHA256指纹(-l表示“列表”,而不是创建新密钥,-f表示“文件名”): 例如,在我的机器上,我运行的命令是(使用RSA公钥): 要使用较新版本的ssh keygen获取GitHub(MD5)指纹格式,请运行: $ ssh-keygen -E md5 -lf <fileName> (如果您

我需要对GitHub执行SSH密钥审核,但我不确定如何找到我的RSA密钥指纹。我最初按照指南在Linux上生成SSH密钥


查找当前RSA密钥指纹需要输入什么命令?

运行以下命令以检索SSH密钥的SHA256指纹(
-l
表示“列表”,而不是创建新密钥,
-f
表示“文件名”):

例如,在我的机器上,我运行的命令是(使用RSA公钥):

要使用较新版本的ssh keygen获取GitHub(MD5)指纹格式,请运行:

$ ssh-keygen -E md5 -lf <fileName>
(如果您想查看其他用户的homedir,您必须是root或sudo。)


ssh add-l非常类似,但列出了添加到代理的密钥的指纹。(OSX用户注意,通过Keychain的无密码魔法SSH与使用SSH代理不同。)

要在第一次连接之前检查远程SSH服务器,您可以查看服务器的所有SHH密钥,以及密钥已知时的密钥


这与SSL证书不同,但在第一次连接到任何SSH服务器之前绝对必须这样做。

要在Ubuntu上查看密钥,只需在终端上输入以下命令:

ssh添加-l

$ ssh-add -l 
您将得到如下输出:
25680j:20:4b:88:a7:9t:wd:19:f0:d4:4y:9g:27:cf:97:23
yourName@ubuntu(RSA)

然而,如果你得到一个错误,如<代码>无法打开与身份验证代理的连接。
这意味着ssh代理没有运行。您可以通过以下方式启动/运行它:
ssh代理bash
(感谢评论中的@Richard),然后重新运行
ssh add-l

$ ssh-add -l 
还将致力于(山狮)-(约塞米蒂)

它还支持选项
-E
来指定指纹格式,以便在需要MD5的情况下(经常被GitHub使用),只需将
-E MD5
添加到命令中即可。

密钥对(私钥和公钥)将具有相同的指纹;因此,如果您记不起哪个私钥属于哪个公钥,请通过比较它们的指纹来找到匹配项

Marvin Vinto投票最多的答案提供了公共SSH密钥文件的指纹。也可以查询相应私有SSH密钥的指纹,但需要更长的一系列步骤,如下所示

  • 如果尚未加载SSH代理,请加载该代理。最简单的方法是调用

    $ ssh-agent bash
    

    (或您使用的另一个shell)

  • 加载要测试的私钥:

    $ ssh-add /path/to/your-ssh-private-key
    
    如果密钥受密码保护,将要求您输入密码短语

  • 现在,正如其他人所说,输入

    $ 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:…
    是您要查找的指纹。如果有多个密钥,将打印多行,最后一行包含上次加载密钥的指纹

  • 如果您想停止代理(即,如果您调用了上面的步骤1),那么只需在shell上键入'exit',就可以在加载ssh代理之前返回shell


  • 我没有添加新的信息,但希望所有级别的用户都能清楚地看到这个答案。

    如果您的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密钥。

    较新的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密钥或较新的黄道密钥


    对于那些不断编辑我在上面使用的命令的“管理员”。别换了!您使命令和结果输出不匹配

    在Windows上,如果您正在运行/Pageant,则当您将PuTTY(.ppk)密钥加载到Pageant中时,会列出指纹。如果你忘了你用的是哪一个,它是非常有用的


    在这里从AWS复制内容,因为我发现它对我的用例很有用-我想检查哪些键与我导入AWS的键匹配

    opensslpkey-in~/.ssh/ec2/primary.pem-pubout-outform DER|openssl md5-c

    其中:

    • primary.pem
      是要检查的私钥

    请注意,这提供了一个不同于由
    ssh-keygen

    计算的指纹。Google计算引擎在Linux实例的串行输出中显示ssh主机密钥指纹。API可以从GCE获取数据,无需登录实例

    除了串行输出,我在其他任何地方都找不到它。我认为指纹应该放在程序员更友好的地方


    但是,它似乎取决于实例的类型。我正在使用Debian7(Wheezy)f1 micro的实例。

    这是我用来获取SSH键指纹以创建水滴的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代理中,最快的方法是:

    $ 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)
    

    在Fedora上,我确实
    locate~/.ssh
    ,它告诉我密钥在

    /root/.ssh
    /root/.ssh/authorized_keys
    

    有时,您可能在
    ~/.ssh
    目录中有一堆密钥,而不知道哪个与GitHub/Gitlab/等显示的指纹匹配

    以下是如何显示
    ~/.ssh
    目录中所有密钥的密钥文件名和MD5指纹:

    cd~/.ssh
    找到-类型f-exec printf“\n{}\n”\-execssh-keygen-E
    
    $ 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)
    
    /root/.ssh
    /root/.ssh/authorized_keys