mathematikの すうがく ブログ

機械学習とかRとかPythonを中心に書いていく予定です

唐突にRemminaでRDP接続ができなくなった話

Abstruct: 数カ月前の話ですが、突然LinuxからRemminaを通じてRDPでWindowsに接続してもエラーがおきてログインできなくなったことがありました。

コマンドラインでRemminaを起動するとフィンガープリントが不一致であると表示されました。
どうもフィンガープリントが変わったらしく、 ~/.freerdp/known_hostsの該当情報を削除すると接続はできた。


本文
家のLinux PCから家にあるルーターを介してWindows PCにRDP(リモートデスクトップ)でログインしようとしたところ、接続できませんといわれ、ログインできませんでした。
数日前までは特に問題なくログインできていました。
一応以下のサイトで設定を確認しましたが、特に問題はありませんでした。

Enable or Disable the Remote Desktop Firewall Rule: Windows Firewall (WF)


接続エラーということで一旦ファイヤウォールを無効化して接続を試みましたが、やはりログインはできませんでした。

ふと思い立ち、端末(terminal)からRemminaを起動してみました。
以下がそのときの出力です(一部情報はマスクしています。)


math2tik@tgoot:
$remmina
Remmina plugin RDP (type=Protocol) registered.
Remmina plugin RDPF (type=File) registered.
Remmina plugin RDPS (type=Preference) registered.
Remmina plugin SFTP (type=Protocol) registered.
Remmina plugin SSH (type=Protocol) registered.
connected to aaa.aaa.aaa.aaa:port
The host key for aaa.aaa.aaa.aaa has changed
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the host key sent by the remote host is
ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff
Please contact your system administrator.
Add correct host key in ~/.freerdp/known_hosts to get rid of this message.
Host key for aaa.aaa.aaa.aaa has changed and you have requested strict checking.
Host key verification failed.
SSL_write: Failure in SSL library (protocol error?)
Authentication failure, check credentials.
If credentials are valid, the NTLMSSP implementation may be to blame.
^C

これを見るとどうも接続先(Remote)の証明書が過去の情報と違い、通信を切っていたということのようです。
sshでもたまに見るやつです。
でそんなファイル(~/.freerdp/known_hosts)があるのかと確認すると、ありました。


math2tik@tgoot:
$cat ~/.freerdp/known_hosts
aaa.aaa.aaa.aaa 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00

幸い一個しか登録されていないので、これを削除します。

math2tik@tgoot:
$rm ~/.freerdp/known_hosts

さらにここから再度RDPでログインします。

math2tik@tgoot:
$remmina
Remmina plugin RDP (type=Protocol) registered.
Remmina plugin RDPF (type=File) registered.
Remmina plugin RDPS (type=Preference) registered.
Remmina plugin SFTP (type=Protocol) registered.
Remmina plugin SSH (type=Protocol) registered.
connected to aaa.aaa.aaa.aaa:port
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: CERTIFICATE NAME MISMATCH! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
The hostname used for this connection (aaa.aaa.aaa.aaa)
does not match the name given in the certificate:
user-PC
A valid certificate for the wrong name should NOT be trusted!

これで無事ログインできました。
しかし、なぜ証明書が変わったのか、謎です。
エラーメッセージでは接続エラーみたいな感じで出てくるので、Windows側のファイヤウォールなどの設定が変わったことを疑いました。(エラーの記録を取っていなかった...)
ちょっとだけエラーメッセージが解り難いな、と思いました。

困ったときにはとりあえず詳細な動作ログをみるといいですね〔自戒〕