为什么 SSH_MSG_USERAUTH_CHANGEREQ 和 SSH_MSG_USERAUTH_PK_OK 的值相同?
Why are SSH_MSG_USERAUTH_CHANGEREQ and SSH_MSG_USERAUTH_PK_OK the same value?
阅读有关 SSHv2 服务的 RFC ssh-userauth
我发现两种消息类型似乎具有相同的值但用于不同(但相似)的情况。
这两个值是:
SSH_MSG_USERAUTH_PK_OK 60 # RFC 4252 section 7
SSH_MSG_USERAUTH_CHANGEREQ 60 # RFC 4252 section 8
这些值在用户身份验证期间使用,首先由 publickey
身份验证方法使用 Public 密钥确认正确的身份验证。 password
auth 方法使用第二个值来告诉客户端他们的密码已过期或密码更改尝试不可接受(密码太短等)。鉴于这两种消息类型具有相同的值并且由服务器返回,客户端应该如何区分这两种消息?
如果客户端使用 publickey
和 password
两种方法开始身份验证并收到一条或两条消息代码为 60
的消息,客户端的预期行为是什么?还是协议不允许多个并发的不同身份验证方法尝试?
Link 到相关的 RFC:https://www.ietf.org/rfc/rfc4252.txt
后者。客户端依次尝试其授权方法。客户端可能会不等待地批量发送一堆授权请求,但服务器会按照发送的顺序依次回复。
阅读有关 SSHv2 服务的 RFC ssh-userauth
我发现两种消息类型似乎具有相同的值但用于不同(但相似)的情况。
这两个值是:
SSH_MSG_USERAUTH_PK_OK 60 # RFC 4252 section 7
SSH_MSG_USERAUTH_CHANGEREQ 60 # RFC 4252 section 8
这些值在用户身份验证期间使用,首先由 publickey
身份验证方法使用 Public 密钥确认正确的身份验证。 password
auth 方法使用第二个值来告诉客户端他们的密码已过期或密码更改尝试不可接受(密码太短等)。鉴于这两种消息类型具有相同的值并且由服务器返回,客户端应该如何区分这两种消息?
如果客户端使用 publickey
和 password
两种方法开始身份验证并收到一条或两条消息代码为 60
的消息,客户端的预期行为是什么?还是协议不允许多个并发的不同身份验证方法尝试?
Link 到相关的 RFC:https://www.ietf.org/rfc/rfc4252.txt
后者。客户端依次尝试其授权方法。客户端可能会不等待地批量发送一堆授权请求,但服务器会按照发送的顺序依次回复。