本記事の後日談はこちら。
[後日談] ミニPCでUbuntu環境を構築
とりあえず解決したので、またまた備忘録メモ。
現象
ubuntu インストール後、電源ONのまま一週間ほど放置していました。
久しぶりに Windows リモートデスクトップからログインしてみると、「認証が必要です」というダイアログがログイン直後から頻繁に表示される状況になっていました。
注)画像の英文は、実際に表示されていたものとは異なります。
対処方法
いろいろと調べてみましたが、どうやら xrdp とGNOME Keyring 付近が怪しそうです。
そこで、以下のことを実施してみたところ、頻繁に表示される現象はなくなりました。
(ログイン直後は必ず表示されていた現象も解消しました)
① xrdpユーザーを「ssl-cert」に追加
② polkit の認証許可を変更
③ GNOME Keyring の認証動作を変更
④ (オマケ)X セッション開始時のDaemon起動など
① xrdpユーザーを「ssl-cert」に追加
xrdp が秘密鍵情報へアクセスする際に問題が発生している可能性があるとのこと。
グループ「ssl-cert」へユーザー「xrdp」を追加して、xrdp を再起動します。
sudo adduser xrdp ssl-cert
sudo systemctl restart xrdp
② polkit の認証許可を変更
xrdpからのリモート接続セッションが「非アクティブ」とみなされ、認証が許可されなかった可能性もあるとのこと。
エントリ「Allow Colord for XRDP Users」を追加し、polkit を再起動しておきます。
まず、次のファイルの先頭にエントリを追加します。
/etc/polkit-1/localauthority.conf.d/45-allow-colord.conf
[Allow Colord for XRDP Users]
Identity=unix-group:xrdp # xrdp グループのユーザーのみに適用
Action=org.freedesktop.color-manager.*
ResultAny=yes
ResultInactive=yes
ResultActive=yes
続けて、polkit を再起動します。
$ sudo systemctl daemon-reload
$ sudo systemctl restart polkit
③ GNOME Keyring の認証動作を変更
以下のことを実現すれば解決するかも、ということでした。
- ロックを自動解除する設定を有効化
- アプリやxrdpセッションが認証情報を自動的に取得可能にする
まず、次のファイルの最後尾にエントリを追加します。
/etc/pam.d/xrdp-sesman
auth optional pam_gnome_keyring.so
session optional pam_gnome_keyring.so auto_start
続けて、polkit を再起動します。
$ sudo systemctl daemon-reload
$ sudo systemctl restart polkit
④(オマケ)X セッション開始時のDaemon起動など
①~③ の対処で解決すると思うのですが、念のため X セッションを開始した時に 次の動作を実施するようにしておきます。
- GNOME Keyring Daemon の起動
- SSH_AUTH_SOCK の設定
- GNOME セッションの起動 <-- 本当に記述する意味があるのだろうか…
次のファイルの内容を変更しておきます。
~/.xsession
#!/bin/bash
# gnome-keyring-daemon がすでに起動していない場合のみ起動
if [ -z "$GNOME_KEYRING_CONTROL" ]; then
eval $(gnome-keyring-daemon --start)
fi
# SSH_AUTH_SOCK が設定されていない場合のみ設定
if [ -z "$SSH_AUTH_SOCK" ]; then
export SSH_AUTH_SOCK=$(find /run/user/$(id -u)/keyring/ -type s -name "ssh" | head -n 1)
fi
# gnome-session が正しいパスに存在するか確認
if [ -x "$(command -v gnome-session)" ]; then
# gnome-session が存在する場合のみ実行
if [ -z "$GNOME_DESKTOP_SESSION_ID" ]; then
# セッションの開始(デスクトップ環境)
exec /usr/bin/gnome-session
else
echo "gnome-session is already running."
fi
else
echo "Error: gnome-session not found."
exit 1
fi
結果
今のところは解消されたように見えます。
認証ダイアログも、不必要な時に表示されなくなりました。
そもそも、インストール直後はそんな現象もなく動いていたのですが、この現象が発生し始めた真の原因は不明なままです。
まぁ、とりあえず これで良し! という事にしておきます。
実はもう1件、おかしな事象が発生して対処したネタもあり…
それまた次回の記事で。(一応は解決済みです)