我想了解SSH授權方法是如何工作的,因爲我正嘗試使用gitolite設置git服務器。使用公鑰和私鑰進行SSH通信
據我所知,gitolite將使用ssh授權用戶並授予他們訪問具有個人寫入和讀取權限的特定存儲庫的權限。但我對授權如何工作感到困惑。
我在YouTube上觀看過一些視頻,他們用一些顏色比喻來解釋。如果我理解正確,對於兩個以祕密方式彼此溝通的人,他們需要一個祕密和公共密鑰。
這兩個人彼此認識對方的公鑰,並彼此溝通他們同意使用一個公鑰。爲建立連接,他們使用相同的公鑰將私鑰加密,並將結果發送給對方。當他們收到結果時,他們會將私鑰添加到該消息中,並像魔術一樣獲得相同的消息。
但我不認爲我理解這個權利,因爲我看不到服務器如何驗證客戶端。我知道服務器必須持有將連接到他的客戶端的公鑰,但他也有私鑰?
當客戶端嘗試連接到服務器時,他會發送使用其公鑰加密的私鑰,服務器使用客戶端公鑰將其私鑰加密併發送給客戶端?
服務器如何檢查用戶是否真的是他?我還讀到,要解密用公鑰加密的信息,只有持有私鑰的人才能解密該消息。那麼,如果服務器沒有客戶私鑰,服務器如何解密客戶端發送的消息呢?
如果有人能夠解釋我如何使用這個公鑰和私鑰來驗證,授權和交換信息,我會非常高興。