为什么SSH\u MSG\u USERAUTH\u CHANGEREQ和SSH\u MSG\u USERAUTH\u PK\u OK的值相同?

为什么SSH\u MSG\u USERAUTH\u CHANGEREQ和SSH\u MSG\u USERAUTH\u PK\u OK的值相同?,ssh,rfc,Ssh,Rfc,阅读有关SSHv2服务的RFCssh userauth我发现两种消息类型似乎具有相同的值,但在不同(但相似)的情况下使用 这两个值是: SSH_MSG_USERAUTH_PK_OK 60 # RFC 4252 section 7 SSH_MSG_USERAUTH_CHANGEREQ 60 # RFC 4252 section 8 这些值在用户身份验证期间使用,第一个值由publickeyauth方法使用公钥确认正确的身份验证。第二个值由passwordauth方法用于告知客户端其密码已

阅读有关SSHv2服务的RFC
ssh userauth
我发现两种消息类型似乎具有相同的值,但在不同(但相似)的情况下使用

这两个值是:

SSH_MSG_USERAUTH_PK_OK     60 # RFC 4252 section 7
SSH_MSG_USERAUTH_CHANGEREQ 60 # RFC 4252 section 8
这些值在用户身份验证期间使用,第一个值由
publickey
auth方法使用公钥确认正确的身份验证。第二个值由
password
auth方法用于告知客户端其密码已过期或密码更改尝试不可接受(密码太短等)。假设这两种消息类型具有相同的值,并且由服务器返回,那么客户端应该如何区分这两种消息之间的差异

如果客户端同时使用
公钥
密码
方法启动身份验证,并收到一条或两条消息,消息代码为
60
,客户端的预期行为是什么?或者协议是否不允许多个并发的不同身份验证方法尝试


链接到相关RFC:

后者。客户端按顺序尝试其授权方法。客户机可能会在不等待的情况下批量发送一系列授权请求,但服务器会按照发送的顺序依次回复这些请求。

我相信您,但您能否链接到RFC的相关部分,其中说明服务器必须按顺序响应授权请求?“5.1客户端可以发送多个身份验证请求,而无需等待以前请求的响应。在处理下一个请求之前,服务器必须完全处理每个请求,并使用SSH_MSG_USERAUTH_失败消息确认任何失败的请求。”