我是Github的新人。我已经生成了SSH密钥,现在可以在 SSH密钥中看到它。是公钥还是私钥?
我已将SSH密钥(我在 SSH密钥下看到)发送给我的客户端。他问是否公开?他想要我的私钥。
是否需要私有SSH密钥?如果是这样,我该如何检索它?
答案 0 :(得分:5)
您无法从GitHub 帐户检索私钥,但是如果您明确将密钥文件添加到已发布的存储库,则可以。 GitHub还将您限制为附加到帐户的seeing the fingerprint个公钥;据我所知,你不能在GitHub上查看帐户的公钥。
SSH公钥存储在一行中,并以密钥类型字段开头,例如ssh-rsa
或ecdsa-sha2-nistp256
。私钥具有多行,以及标识密钥块的标题。例如:
-----开始RSA私钥-----
无论如何,您无法将有效的私钥添加到GitHub帐户。目前,GitHub仅接受RSA和DSA公钥。如果您尝试添加其他键类型或任何类型的无效公钥,则会收到如下错误:
密钥无效。它必须以'ssh-rsa'或'ssh-dss'开头。检查您是否正在复制密钥的公共部分
所有这一切的结果是 - 除了你永远不会存储你的私钥服务器端这一事实 - 它不是可能将私钥附加到GitHub帐户。因此,无法从GitHub帐户中检索密钥对的私有部分。
当然,虽然您无法将SSH私钥添加到GitHub帐户,但可以将它们添加到已发布的存储库中。举个例子,Vagrant项目publishes a full key-pair,但这是一个特例。
发布您的密钥本质上是不安全的。除非你理解其含义,否则不要这样做。