为什么SSH_MSG_USERAUTH_CHANGEREQ和SSH_MSG_USERAUTH_PK_OK的值相同?

时间:2017-03-13 20:58:43

标签: ssh rfc

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

这两个值是:

SSH_MSG_USERAUTH_PK_OK     60 # RFC 4252 section 7
SSH_MSG_USERAUTH_CHANGEREQ 60 # RFC 4252 section 8

这些值在用户身份验证期间使用,第一个是publickey身份验证方法,以使用公钥确认正确的身份验证。 password auth方法使用第二个值告诉客户端密码已过期或密码更改尝试不可接受(密码太短等等)。鉴于这两种消息类型具有相同的值并由服务器返回,客户端应该如何区分这两种消息?

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

指向相关RFC的链接:https://www.ietf.org/rfc/rfc4252.txt

1 个答案:

答案 0 :(得分:1)

后者。客户端按顺序尝试其授权方法。客户端可以批量处理并发送一堆授权请求而无需等待,但服务器将按照发送顺序依次回复它们。