🐾

Chrome Remote Desktop後にパスワード認証が頻繁に求められる問題の解決方法

に公開

問題の症状

Chrome Remote Desktop(CRD)を使用してDebian 12サーバーにリモートログインした後、以下のような場面で頻繁にパスワード認証を求められるようになることがあります。

  • 外付けディスクのマウント時
  • OSのサスペンド時
  • その他のシステム管理操作時

原因の解説

Chrome Remote Desktopが作成する仮想セッション

CRDで接続すると、chrome-remote-desktopという別セッションがsystemd-logindに登録されます。この結果、同じユーザーに対して複数のactiveセッションが並存することになります。

$ loginctl
  SESSION   UID USER      SEAT  TTY
  c3        1000 you      seat0
  c1        1000 you             chrome-remote-desktop

polkitの認証メカニズムとの衝突

polkitの既定ポリシーでは、mount(org.freedesktop.udisks2.*)やsuspend(org.freedesktop.login1.suspend)などの操作に対して、「現在activeでlocalなセッション」にはパスワード無しで権限を与えるように設定されています(<allow_active>yes</allow_active>)。

しかし、複数のセッションが同時にactiveな状態では、polkitがどちらを「本物の作業席」として判定すべきか決められず、結果として認証を要求するようになります。

問題の確認方法

まず、現在の状況を確認してみましょう。

# セッション一覧の確認
$ loginctl

# polkitの動作ログを確認
$ journalctl -u polkit -f

loginctlでchrome-remote-desktopセッションが残っているかどうかを確認してください。

解決策

1. 即座に問題を解決する(残留セッションの終了)

残っているCRDセッションを手動で終了します。

# 残っているCRDセッションIDがc1だった場合
$ sudo loginctl terminate-session c1

または

$ /opt/google/chrome-remote-desktop/chrome-remote-desktop --stop

2. 根本的な解決(自動起動の無効化)【推奨】

CRDを常時起動する必要がない場合は、ユーザーサービスを無効化することをお勧めします。

$ systemctl --user disable --now chrome-remote-desktop.service

この設定により、必要な時にのみchrome-remote-desktop --startで起動すれば、余計なセッションが残ることはありません。

3. 常時使用する場合の対策

自動クリーンアップの設定

CRDを常時使用する必要がある場合は、利用後にセッションを自動で掃除する仕組みを作ることができます。

/etc/systemd/system/crd-cleanup.serviceを作成し、ExecStopPost=に残留セッションを終了するスクリプトを設定します。

[Unit]
Description=CRD Session Cleanup
After=chrome-remote-desktop.service

[Service]
Type=oneshot
ExecStopPost=/bin/bash -c 'loginctl terminate-session $(loginctl | awk "/chrome-remote-desktop/ {print $1}")'
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

代替手段の検討

他のリモートアクセス手段

  • xrdp / VNC / WayVNCなどの別のリモート手段は「席」を乗っ取らないため、polkitとの衝突が起こりにくい特徴があります。

まとめ

Chrome Remote Desktopは「見えないXセッション」を残し、これがsystemd-logind / polkitの「active seat」判定を混乱させることが問題の根本原因です。

最も簡単で確実な解決策は、余分なセッションを終了し、CRDの自動起動を止めることです。常時使用する場合は、適切なクリーンアップ機構を導入することで問題を回避できます。

リモートデスクトップ環境を使用する際は、セッション管理とシステム権限の関係を理解し、適切な設定を行うことが重要です。

Discussion