Ssh

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

  • January 22, 2015

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

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

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

所以用你的例子。Bob 和 Alice 都有私鑰和公鑰。事先共享或作為連接的一部分共享的公鑰用於驗證由私鑰加密的數據是否合法。如果客戶端沒有公鑰,或者有不同的公鑰,你會得到一個可怕的警告。如果伺服器沒有客戶端公鑰,您將不被允許進入。

引用自:https://serverfault.com/questions/107433