为什么SSH公钥位于服务器上而不是客户端?

我不太明白将公钥保存在服务器上的理论.在公钥/私钥的密码箱类比中,为了解锁Alice的盒子,Alice在将公钥分发给Bob时保持私钥.服务器似乎扮演了密码箱的角色,为什么它会持有公钥?
最佳答案
请记住,服务器具有私钥和公钥,该密钥与您作为用户生成的密钥对完全分开.服务器的私钥通常与服务器配置一起存储,当您尝试连接时,服务器会传输公钥.您的客户端将服务器的公钥与known_hosts文件进行比较.如果使用得当,这可以防止MITM攻击.

您拥有个人帐户的私钥.服务器需要您的公钥,以便它可以验证您尝试使用的帐户的私钥是否已获得授权.

所以用你的例子. Bob和Alice都有私钥和公钥.事先共享或作为连接的一部分共享的公钥用于验证由私钥加密的数据是合法的.如果客户端没有公钥,或者有不同的公钥,您将收到一个可怕的警告.如果服务器没有客户端公钥,则不允许使用.

转载注明原文:为什么SSH公钥位于服务器上而不是客户端? - 代码日志