我想了解SSH授权方法是如何工作的,因为我正尝试使用gitolite设置git服务器。使用公钥和私钥进行SSH通信
据我所知,gitolite将使用ssh授权用户并授予他们访问具有个人写入和读取权限的特定存储库的权限。但我对授权如何工作感到困惑。
我在YouTube上观看过一些视频,他们用一些颜色比喻来解释。如果我理解正确,对于两个以秘密方式彼此沟通的人,他们需要一个秘密和公共密钥。
这两个人彼此认识对方的公钥,并彼此沟通他们同意使用一个公钥。为建立连接,他们使用相同的公钥将私钥加密,并将结果发送给对方。当他们收到结果时,他们会将私钥添加到该消息中,并像魔术一样获得相同的消息。
但我不认为我理解这个权利,因为我看不到服务器如何验证客户端。我知道服务器必须持有将连接到他的客户端的公钥,但他也有私钥?
当客户端尝试连接到服务器时,他会发送使用其公钥加密的私钥,服务器使用客户端公钥将其私钥加密并发送给客户端?
服务器如何检查用户是否真的是他?我还读到,要解密用公钥加密的信息,只有持有私钥的人才能解密该消息。那么,如果服务器没有客户私钥,服务器如何解密客户端发送的消息呢?
如果有人能够解释我如何使用这个公钥和私钥来验证,授权和交换信息,我会非常高兴。