我已经生成了一个密钥对(公共和私有)并将公钥复制到远程服务器,ssh-copy-id
公钥和禁用的基于密码的登录。现在我可以在不提供密码的情况下通过 ssh 进入机器。
我一直在寻找可能发生的协议或消息交换,当我通过 ssh 连接到我一直在寻找的远程机器时,却找不到描述在这种情况下如何准确确认身份的文章。我非常了解 PKI 和 Diffie-Hellman,但我无法全面了解我 ssh 进入远程机器时究竟发生了什么。
有人可以解释/链接我到做同样的文章吗?谢谢!
我已经生成了一个密钥对(公共和私有)并将公钥复制到远程服务器,ssh-copy-id
公钥和禁用的基于密码的登录。现在我可以在不提供密码的情况下通过 ssh 进入机器。
我一直在寻找可能发生的协议或消息交换,当我通过 ssh 连接到我一直在寻找的远程机器时,却找不到描述在这种情况下如何准确确认身份的文章。我非常了解 PKI 和 Diffie-Hellman,但我无法全面了解我 ssh 进入远程机器时究竟发生了什么。
有人可以解释/链接我到做同样的文章吗?谢谢!
来自 RFC:
使用这种方法,拥有私钥作为身份验证。此方法通过发送使用用户的私钥创建的签名来工作。服务器必须检查密钥是否是用户的有效身份验证器,并且必须检查签名是否有效。如果两者都成立,则必须接受身份验证请求;否则,它必须被拒绝。请注意,成功验证后,服务器可能需要额外的验证。
如果您在 ssh 上使用详细信息,您可以看到,客户端会在登录时提供一条消息,该消息使用您的私钥签名。如果您使用多个密钥,它将一一发送。服务器在您的公钥的帮助下检查签名是否有效。如果签名有效并且服务器知道公钥,它将授予访问权限。如果没有,您的客户将尝试下一个,或者如果没有留下,它将拒绝访问。