はじめに
WindowsのリモートデスクトップからDebianにGUIでログインできなくなったので、原因を調べました。
環境
- Debian12 Bookworm - xrdp 0.9.21.1-1+deb12u1
症状
- WindowsのリモートデスクトップからGUIでログインできない
- パソコンに直結した液晶モニタからはGUIでログインできる
- TeraTermを使ってSSHでログインできる
- Xvnc、Xorgを使っている
原因
/etc/pam.d/xrdp-sesmanの記述が以下のようになっていたのが原因でした。
つまり、pam_sss.so を直接呼んだあとに common-auth でも pam_sss.so を呼ぶ → 認証失敗しており、pam_sss.so が2重に呼び出されています。
SSH や GDM は common-auth 経由のみなので成功します。
auth required pam_env.so readenv=1 auth required pam_env.so readenv=1 envfile=/etc/default/locale auth required pam_sss.so account required pam_sss.so session required pam_sss.so @include common-auth @include common-account @include common-session @include common-password
/etc/pam.d/xrdp-sesman
以下のように記述することで、リモートデスクトップ、SSHでログインに成功することを確認しました。
auth required pam_env.so readenv=1 auth required pam_env.so readenv=1 envfile=/etc/default/locale auth include common-auth account include common-account session include common-session session include common-session-noninteractive
編集後は、サービスを再起動します。
sudo systemctl restart xrdp xrdp-sesman
/etc/xrdp/xrdp.ini
/etc/xrdp/xrdp.iniは以下のように記述しています。(抜粋)
port=ask-1 は、前回ログイン時のセッションを表示する設定です。
[Xvnc] name=Xvnc lib=libvnc.so username=ask password=ask ip=127.0.0.1 port=ask-1 #xserverbpp=24 #delay_ms=2000 [Xorg] name=Xorg lib=libxup.so username=ask password=ask ip=127.0.0.1 port=-1 code=20
その他
該当パソコンのログイン環境、テスト結果は下記だったので、PAM と xrdp-sesman の組み合わせだけが失敗しており、/etc/pam.d/xrdp-sesman が怪しいと目星を付けることができました。
- Samba AD ドメイン (ADS) に参加済み
- Linux 側の認証は SSSD (pam_sss.so) 経由
- /etc/pam.d/xrdp-sesman は SSSD 用に設定済み
- id username は成功
- id username @レルム名.ドメイン名 は成功


Comments