git push via ssh and who knows the private key?
这是一个概念性问题。
当建立到gitbucket/github的ssh连接时,我正在创建一个私有ssh密钥,然后用于创建公共ssh密钥。
然后我将公钥添加到gitbucket。
因此,当我的计算机持有私钥时,它可以解密来自gitbucket的加密消息。
所以我理解例如Git克隆是如何工作的。
但是Gitback没有自己的私钥,我没有向我的计算机添加由该(不存在的)私钥生成的公钥。那么Git应该如何通过ssh推送工作呢????
But gitbucket has no own private key
它不需要私人密钥,只需要公共密钥就可以对您进行身份验证。
一旦Gitback知道谁在联系克隆或推送,它将允许操作。对于推送,如果您是要推送的回购的所有者,那么它会起作用。
GitBucket中的认证部分(
- 用于检索用户名的
src/main/scala/model/SshKey.scala 。 - 用于存储用户名和公钥的
src/main/scala/service/SshKeyService.scala 。
由于公钥加密的工作方式,服务器端(GitBucket)只需要公钥。