為什麼 SSH 公鑰位於伺服器而不是客戶端?

為什麼 SSH 公鑰位於伺服器而不是客戶端?

我不太明白將公鑰保留在伺服器上的理論。在公鑰/私鑰的密碼箱類比中,解鎖愛麗絲的盒子裡,Alice 持有私鑰,而公鑰則分發給 Bob。看起來伺服器扮演了密碼箱的角色,那為什麼它持有公鑰呢?

答案1

請記住,伺服器確實有一個私鑰和公鑰,它們與您作為用戶生成的密鑰對完全分開。伺服器的私鑰通常與伺服器配置一起存儲,而公鑰在您嘗試連接時由伺服器傳輸。您的客戶端將伺服器的公鑰與您的known_hosts 檔案進行比較。如果使用得當,這可以防止 MITM 攻擊。

您擁有您個人帳號的私鑰。伺服器需要您的公鑰,以便驗證您嘗試使用的帳戶的私鑰是否已獲得授權。

所以用你的例子。鮑伯和愛麗絲都有私鑰和公鑰。事先共享或作為連接的一部分共享的公鑰用於驗證私鑰加密的資料是否合法。如果客戶端沒有公鑰,或者有不同的公鑰,您將收到可怕的警告。如果伺服器沒有客戶端公鑰,您將不被允許進入。

答案2

作為用戶,您在登入時需要提供您的資訊。

它的工作方式是伺服器向您發送一些文本,要求您對其進行加密並使用您的公鑰對其進行解密。只有擁有您私鑰的人才能執行此操作。

答案3

公鑰是一個非常大的數字,是從您的私鑰透過數學推導出來的。

它是透過將兩個數字連結起來得出的,

但只有知道公鑰的人才能發現私鑰。公鑰是您發送給其他方、您想要對其進行身份驗證或您想要向其發送加密訊息的人的密鑰。公鑰不敏感,不需要保護。它可以公開傳播。 [電子郵件受保護]

答案4

我想說,一個更好的類比是,伺服器的公鑰是一個打開的密碼箱,帶有一個閂鎖,您可以關閉(但不能打開)它,只有伺服器可以打開它。真正的問題是你是否信任公鑰(真的嗎?愛麗絲的Box? ),無論您從哪裡獲得它,根據定義都是公開的,這就是 PKI 的含義。

相關內容