ディスプレイマネージャなし、i3ウィンドウマネージャとしてDebianテストを実行します。
gnome-keyring
&libpam-gnome-keyring
パッケージがインストールされました。 /etc/pam.d/loginの末尾に次の2行を追加します。
auth optional pam_gnome_keyring.so
session optional pam_gnome_keyring.so auto_start
キーリングはsystemd @によって開始されましたが、/etc/systemd/user/graphical-session-pre.target.wants/gnome-keyring-daemon.service
xinitrcでも交換を試みました。
eval $(/usr/bin/gnome-keyring-daemon --replace --components=gpg,pkcs11,secrets,ssh)
/var/log/auth.logには、オペレーティングシステムのログインの次の内容が含まれています。
Jun 26 00:35:39 p14s su[1409]: (to laur) root on none
Jun 26 00:35:39 p14s su[1409]: pam_unix(su:session): session opened for user laur(uid=1000) by (uid=0)
Jun 26 00:35:39 p14s systemd: pam_unix(systemd-user:session): session opened for user laur(uid=1000) by (uid=0)
Jun 26 00:35:39 p14s su[1409]: pam_unix(su:session): session closed for user laur
Jun 26 00:35:41 p14s su[1922]: (to laur) root on none
Jun 26 00:35:41 p14s su[1922]: pam_unix(su:session): session opened for user laur(uid=1000) by (uid=0)
Jun 26 00:35:42 p14s su[1922]: pam_unix(su:session): session closed for user laur
Jun 26 00:35:42 p14s su[2005]: (to laur) root on none
Jun 26 00:35:42 p14s su[2005]: pam_unix(su:session): session opened for user laur(uid=1000) by (uid=0)
Jun 26 00:35:42 p14s login[1174]: gkr-pam: unable to locate daemon control file
Jun 26 00:35:42 p14s login[1174]: gkr-pam: stashed password to try later in open session
Jun 26 00:35:42 p14s login[1174]: pam_unix(login:session): session opened for user laur(uid=1000) by LOGIN(uid=0)
Jun 26 00:35:42 p14s systemd-logind[1003]: New session 2 of user laur.
Jun 26 00:35:42 p14s login[1174]: gkr-pam: unlocked login keyring <----- this should be success, right?
Jun 26 00:35:42 p14s su[2005]: pam_unix(su:session): session closed for user laur
Jun 26 00:35:42 p14s su[2078]: (to laur) root on none
Jun 26 00:35:42 p14s su[2078]: pam_unix(su:session): session opened for user laur(uid=1000) by (uid=0)
Jun 26 00:35:42 p14s su[2078]: pam_unix(su:session): session closed for user laur
Jun 26 00:35:45 p14s polkitd(authority=local): Registered Authentication Agent for unix-session:2 (system bus name :1.81 [/usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1], object path /org/gnome/PolicyKit1/AuthenticationAgent, locale en_US.UTF-8)
Jun 26 00:35:46 p14s gnome-keyring-daemon[2026]: The Secret Service was already initialized
Jun 26 00:35:46 p14s gnome-keyring-daemon[3062]: discover_other_daemon: 1
Jun 26 00:35:48 p14s su[4284]: (to laur) root on none
Jun 26 00:35:48 p14s su[4284]: pam_unix(su-l:session): session opened for user laur(uid=1000) by (uid=0)
Jun 26 00:35:50 p14s su[4284]: pam_unix(su-l:session): session closed for user laur
Jun 26 00:35:50 p14s su[4365]: (to laur) root on none
Jun 26 00:35:50 p14s su[4365]: pam_unix(su-l:session): session opened for user laur(uid=1000) by (uid=0)
Jun 26 00:35:50 p14s su[4365]: pam_unix(su-l:session): session closed for user laur
Jun 26 00:35:50 p14s su[4402]: (to laur) root on none
Jun 26 00:35:50 p14s su[4402]: pam_unix(su-l:session): session opened for user laur(uid=1000) by (uid=0)
また、既存のキーリングを削除して再作成しました。キーリングのパスワードは私のユーザーログインパスワードと同じです。
まだ喜びはありません。 2022年にはこの問題をどのように処理するのでしょうか。
答え1
解決したと思います。何が起こっているのかよくわかりませんが、dbusに関連しています。問題はi3の起動方法です~/.xinitrc
。
exec dbus-run-session i3
私はこれがkeyring-daemonがi3(そしてさらに多くのユーザースペースの他のほとんどすべて)とは異なるdbusセッションにバインドすることを推測します。この問題を克服するために、~/.xsession
systemdを介してi3を起動します。 ~/.xinitrcを完全に削除しました。
$ cat ~/.xsession
systemctl --user import-environment
systemctl --user daemon-reload
# note we add the 'wait' flag, which disallows immediate exit, which in turn would stop X session right after it.
exec systemctl --user start --wait xsession.target
startxはパラメータなしで開始されます。exec startx
関連システムユニット:
$ tree -a ~/.config/systemd/user/
├── i3wm.service
├── xsession.target
└── xsession.target.requires
└── i3wm.service -> ../i3wm.service
$ cat ~/.config/systemd/user/i3wm.service
[Unit]
Description=i3 Window Manager
PartOf=graphical-session.target
[Service]
ExecStart=/usr/bin/i3
ExecStopPost=/usr/bin/systemctl --user stop graphical-session.target
Restart=on-failure
[Install]
RequiredBy=xsession.target
$ cat ~/.config/systemd/user/xsession.target
[Unit]
Description=X session managed by systemd
BindsTo=graphical-session.target
暗号化されたキーリングは、期待どおりにログインするとPAMによってロック解除されます。質問の説明に従って追加された2行は/etc/pam.d/login
まだ非常に必要です。
感謝の言葉このブログ