現象
MacのMicrosoft Remote Desktop appでAWS EC2上で動いているWindows Server 2016にログインしようとしたところ、下記のようなエラーメッセージが表示された。
ちなみにAdminユーザはログインできる状態。
The credentials are correct, but the host cannot log you on for another reason. Please check if your password has expired or contact your system administrator for assistance.
結論
パスワードの有効期限切れでした。
Adminユーザでログインして、該当ユーザのパスワードを無期限に変更することでログインできるようになりました。
調べたこと
下記の操作でエラーログを確認
Microsoft Remote Desktop -> About Microsoft Remote Desktop -> Send log via email
ログインに失敗するユーザのログ
[2016-Dec-26 15:39:09] RDP (0): correlation id: correlation not set or of invalid length
[2016-Dec-26 15:39:09] RDP (0): Resolved 'xxx.ap-northeast-1.compute.amazonaws.com' to 'xxx.xxx.xxx.xxx' using NameResolveMethod_DNS(1)
[2016-Dec-26 15:39:09] RDP (0): Protocol state changed to: ProtocolConnectingNetwork(1)
[2016-Dec-26 15:39:09] RDP (0): Protocol state changed to: ProtocolNegotiatingCredentials(2)
[2016-Dec-26 15:39:12] RDP (0): Exception caught: Exception in file '../../librdp/private/tlsendpoint_openssl.cpp' at line 451
User Message : TLSEndpointException: 0
[2016-Dec-26 15:39:12] RDP (0): correlation id: correlation not set or of invalid length
[2016-Dec-26 15:39:12] RDP (0): Protocol state changed to: ProtocolConnectingNetwork(1)
[2016-Dec-26 15:39:12] RDP (0): Resolved 'xxx.ap-northeast-1.compute.amazonaws.com' to 'xxx.xxx.xxx.xxx' using NameResolveMethod_DNS(1)
[2016-Dec-26 15:39:12] RDP (0): Protocol state changed to: ProtocolNegotiatingCredentials(2)
[2016-Dec-26 15:39:12] RDP (0): Exception caught: Exception in file '../../librdp/itotlayer.cpp' at line 877
User Message : Security negotiation Error: CredSSPRequired(5)
[2016-Dec-26 15:39:12] RDP (0): Protocol state changed to: ProtocolDisconnecting(7)
[2016-Dec-26 15:39:12] RDP (0): Protocol state changed to: ProtocolDisconnected(8)
[2016-Dec-26 15:39:13] RDP (0): ------ END ACTIVE CONNECTION ------
ログインに成功するAdminユーザのログ
[2016-Dec-26 17:41:11] RDP (0): Resolved 'xxx.ap-northeast-1.compute.amazonaws.com' to 'xxx.xxx.xxx.xxx' using NameResolveMethod_DNS(1)
[2016-Dec-26 17:41:11] RDP (0): Protocol state changed to: ProtocolConnectingNetwork(1)
[2016-Dec-26 17:41:11] RDP (0): Protocol state changed to: ProtocolNegotiatingCredentials(2)
[2016-Dec-26 17:41:13] RDP (0): Protocol state changed to: ProtocolConnectingRDP(3)
[2016-Dec-26 17:41:13] RDP (0): Protocol state changed to: ProtocolInactive(4)
[2016-Dec-26 17:41:13] RDP (0): Server supports RAIL
[2016-Dec-26 17:41:13] RDP (0): Protocol state changed to: ProtocolActive(5)
[2016-Dec-26 17:41:13] RDP (0): HeartBeat: connection monitoring started
[2016-Dec-26 17:42:43] RDP (0): Exception caught: Exception in file '../../librdpclient/asiosocketendpoint.cpp' at line 400
User Message : Connection reset by peer
[2016-Dec-26 17:42:43] RDP (0): Protocol state changed to: ProtocolDisconnecting(7)
[2016-Dec-26 17:42:43] RDP (0): Protocol state changed to: ProtocolDisconnected(8)
[2016-Dec-26 17:42:43] RDP (0): ------ END ACTIVE CONNECTION ------
[2016-Dec-26 17:42:48] RDP (0): Final rdp configuration used: screen mode id:i:2
ログインできないログと見比べると、ProtocolNegotiatingCredentialsのステップをクリアして次に進んでいるのが分かります。
ログインできない方は、Exceptionが出ており、 Security negotiation Error: CredSSPRequired(5)
というmessageが出ているのが怪しそうということで、これらのキーワードで調べたところ、Microsoftのフォーラムで、Microsoft Remote Desktop betaを使ってみてという話が出ていたのでbeta版で試してみると、パスワードの有効期限切れだよという親切なエラーメッセージが表示されたことで解決しました。