我是 Github 的新手。我已经生成了 SSH 密钥,现在可以在SSH Keys中看到它。是公钥还是私钥?
我已将 SSH 密钥(我在SSH Keys下看到)发送给我的客户端。他问是否公开?他想要我的私钥。
是否需要私有 SSH 密钥?如果是这样,我该如何找回它?
您无法从 GitHub帐户检索私钥,但如果您将密钥文件显式添加到已发布的存储库,则可以。GitHub 还限制您查看附加到帐户的公钥指纹;据我所知,您也无法在 GitHub 上查看帐户的公钥。
SSH 公钥存储在一行中,并以密钥类型字段开头,例如ssh-rsa
or ecdsa-sha2-nistp256
。私钥具有多行,以及标识密钥块的标头。例如:
-----开始 RSA 私钥-----
无论如何,您实际上无法将有效的私钥添加到 GitHub 帐户。目前,GitHub 仅为此目的接受 RSA 和 DSA 公钥。如果您尝试添加不同的密钥类型或任何类型的无效公钥,您会收到如下错误:
密钥无效。它必须以“ssh-rsa”或“ssh-dss”开头。检查您是否正在复制密钥的公共部分
所有这一切的结果是——除了你永远不应该在服务器端存储你的私钥这一事实之外——不可能将私钥附加到 GitHub 帐户。因此,无法从 GitHub 帐户中检索密钥对的私有部分。
当然,虽然您不能将 SSH 私钥添加到 GitHub 帐户,但您可以将它们添加到已发布的存储库中。作为一个例子,Vagrant项目发布了一个完整的密钥对,但这是一个特例。
发布您的密钥本质上是不安全的。除非您了解其中的含义,否则不要这样做。