这是一个概念性问题 .
在设置与gitbucket / github的ssh连接时,我正在创建一个私有ssh密钥,然后用于创建公共ssh密钥 .
然后我将公钥添加到gitbucket .
因此,当我的计算机持有私钥时,它可以解密来自gitbucket的加密消息 .
所以我理解git clone是如何工作的 .
但gitbucket没有自己的私钥,我没有向我的计算机添加公钥,该公钥是由该(非现有的)私钥生成的 . 那么git如何通过ssh推送工作?
但gitbucket没有自己的私钥
它不需要私钥,只需要公共密钥即可验证您 .
一旦gitbucket知道谁正在联系克隆或推送,它将允许操作 .对于推送,如果您是要推送到的仓库的所有者,则它会起作用 .
对于gitbucket中的authentication part (ssh/PublicKeyAuthenticator.scala),请参阅:
src/main/scala/model/SshKey.scala用于检索用户名
src/main/scala/service/SshKeyService.scala用于存储用户名和公钥 .
由于public key cryptography的工作方式,服务器端(gitbucket)只需要公钥 .
1 回答
它不需要私钥,只需要公共密钥即可验证您 .
一旦gitbucket知道谁正在联系克隆或推送,它将允许操作 .
对于推送,如果您是要推送到的仓库的所有者,则它会起作用 .
对于gitbucket中的authentication part (ssh/PublicKeyAuthenticator.scala),请参阅:
src/main/scala/model/SshKey.scala用于检索用户名
src/main/scala/service/SshKeyService.scala用于存储用户名和公钥 .
由于public key cryptography的工作方式,服务器端(gitbucket)只需要公钥 .