〔不具合対応〕 Windows 10 リモートデスクトップから XRDP 0.9.4 in LXDE on Ubuntu 16.04 LTS サーバへ接続できない
昨日の日記「2017-10-04 - grasso0210の日記」で、
Ubunutu 16.04 + LXDE 上での XRDP の動作確認に成功したと書きましたが、
改めて再インストール(実行PCのHDD交換のため)したところ、
接続できない不具合が発生したので記録しておきます。
【現象】
Windows 10 からのリモートデスクトップ接続で、ログイン後にクライアント自体が落ちる
/var/log/xrdp.log を見ると、以下のようなエラーメッセージが出力されていました。
[20171005-14:35:13] [ERROR] Listening socket is in wrong state we terminate listener
【原因】
ユーザディレクトリ下に作成した ~/.xsession script 内で、X Session manager (lxsession) を起動していなかったため
⇒ LXDE サーバとの session 用 socket が正常に作られず、RDP client と LXDE サーバとの通信ができなかったため…(推測)
【対策】
ユーザディレクトリ下の ~/.xsession に次の1行を加える
参考サイト
- https://qiita.com/oniipon/items/4fe3ba65d64d6eed231c
- https://askubuntu.com/questions/178962/how-to-start-lxde-session-automatically-after-tightvncserver-starts-to-make-me-a
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
原因の調査の過程で、以下のようなことを試しました。
しかし、状況は改善しませんでした。
■ 失敗策 (1)
参照サイト:
この記事の後半に書かれているように、
TLSの秘密鍵と証明書署名要求を再作成し、/etc/xrdp/xrdp.ini に記載しました。
でも、現象は変わりませんでした。
$ cd /etc/xrdp
$ sudo openssl req -x509 -newkey rsa:2048 -nodes -keyout key.pem -out cert.pem -days 365
※ 対話形式で各種設定項目を問われますので、 FQDN を問われたら xrdp サーバの FQDN を設定すると、RDP接続時に「証明書のFQDNとサーバのFQDNが違う」旨のエラーメッセージが出なくなります。
/etc/xrdp/xrdp.ini の Security Layer 設定関連
[Globals]
security_layer=negotiate
crypt_level=high
certificate=cert.pem
key_file=key.pem
ssl_protocols=TLSv1, TLSv1.1, TLSv1.2
■ 失敗策(2)
参考サイト:
xrdp 0.9.3 以前のバージョンではそうだったのかもしれませんが、
私が試した xrdp 0.9.4 では /etc/xrdp/xrdp.ini 内の下記双方のパラメータを 24 から 32 に変更しても現象は変わりませんでした。
[Globals]
max_bpp=24
[X11rdp]
xserverbpp=24
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
余談になりますが、昨日のテストで上記の現象が発生せず、
今日の動作確認段階で発生したのは、
~/.xsession ファイルの有無の違いです。
今日は、LXDE 環境下での Keymap を変更 ( 「Caps Lock」キーを「左Ctrl」キーに変更)する処理を追加したためでした。
こちらは、/etc/default/keyboard で
XKBOPTIONS="ctrl:nocaps"
と記述することで、コンソール上では変更されていたのに、
LXDE 起動後に LXTerminal 等では反映されなかったのはなぜ?
という疑問が残るのですが… f(^_^;