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