如何验证 github SSH 密钥

and*_*y g 7 linux github sha ssh-keys

我想验证 github 中的 SSH 密钥是否与我计算机上的本地文件匹配。

在此输入图像描述

github密钥似乎是SHA256,以base64编码,但我的本地密钥,用此命令编码似乎与它不匹配。

$ cat ~/.ssh/github.pub | sha256sum | base64

有没有更好的方法来实现我想要做的事情?

bk2*_*204 6

OpenSSH格式的SSH公钥包含两部分或三部分,中间用空格分隔:

  • 算法名称。
  • 协议格式的 Base64 编码的 SSH 公钥。
  • 可选评论。

SSH 密钥的指纹是原始公钥的 Base64 编码的 SHA-256 哈希(即,没有 Base64 编码)。您可以编写此脚本,但幸运的是,有一种简单的方法可以使用以下命令找到它ssh-keygen

$ ssh-keygen -l -f ~/.ssh/id_ed25519.pub
Run Code Online (Sandbox Code Playgroud)

您可以将公钥的文件名更改为您系统上合适的文件名。在我的系统上,输出如下所示:

256 SHA256:E59Xzh/fsZKkCEL46kTLbPFGXyIodA+ntsQL0JWmq9Y bmc@camp (ED25519)
Run Code Online (Sandbox Code Playgroud)

指纹是第二块。


小智 5

测试它们是否匹配的一个简单方法是在命令行中通过 ssh 进行身份验证。

设置 ssh 密钥后,输入:

ssh -T git@github.com
Run Code Online (Sandbox Code Playgroud)

https://docs.github.com/en/authentication/connecting-to-github-with-ssh/testing-your-ssh-connection