4

我是 Github 的新手。我已经生成了 SSH 密钥,现在可以在SSH Keys中看到它。是公钥还是私钥?

我已将 SSH 密钥(我在SSH Keys下看到)发送给我的客户端。他问是否公开?他想要我的私钥。

是否需要私有 SSH 密钥?如果是这样,我该如何找回它?

4

1 回答 1

5

TL;博士

您无法从 GitHub帐户检索私钥,但如果您将密钥文件显式添加到已发布的存储库,则可以。GitHub 还限制您查看附加到帐户的公钥指纹;据我所知,您也无法在 GitHub 上查看帐户的公钥。

私钥与公钥

SSH 公钥存储在一行中,并以密钥类型字段开头,例如ssh-rsaor ecdsa-sha2-nistp256。私钥具有多行,以及标识密钥块的标头。例如:

-----开始 RSA 私钥-----

GitHub 只接受公钥

无论如何,您实际上无法将有效的私钥添加到 GitHub 帐户。目前,GitHub 仅为此目的接受 RSA 和 DSA 公钥。如果您尝试添加不同的密钥类型或任何类型的无效公钥,您会收到如下错误:

密钥无效。它必须以“ssh-rsa”或“ssh-dss”开头。检查您是否正在复制密钥的公共部分

私钥不存储在 GitHub 帐户中的服务器端

所有这一切的结果是——除了你永远不应该在服务器端存储你的私钥这一事实之外——不可能将私钥附加到 GitHub 帐户。因此,无法从 GitHub 帐户中检索密钥对的私有部分。

当然,虽然您不能将 SSH 私钥添加到 GitHub 帐户,但您可以将它们添加到已发布的存储库中。作为一个例子,Vagrant项目发布了一个完整的密钥对,但这是一个特例。

发布您的密钥本质上是不安全的。除非您了解其中的含义,否则不要这样做。

于 2012-07-23T16:49:55.867 回答