コンテンツにスキップ

「GNOME/Keyring」の版間の差分

提供: ArchWiki
削除された内容 追加された内容
AshMyzk (トーク | 投稿記録)
同期
2行目: 2行目:
[[en:GNOME/Keyring]]
[[en:GNOME/Keyring]]
[[es:GNOME (Español)/Keyring]]
[[es:GNOME (Español)/Keyring]]
[[zh-hans:GNOME (简体中文)/Keyring]]
[[zh-hans:GNOME/Keyring]]
[https://wiki.gnome.org/Projects/GnomeKeyring GNOME Keyring] は「シークレット・パスワード・鍵・証明書を保存し、それらをアプリケーションから利用できるようにする GNOME のコンポーネントのコレクション」です。
[https://wiki.gnome.org/Projects/GnomeKeyring GNOME Keyring] は「シークレット・パスワード・鍵・証明書を保存し、それらをアプリケーションから利用できるようにする GNOME のコンポーネントのコレクション」です。


== インストール ==
== インストール ==
GNOME を使用している場合、{{Pkg|gnome-keyring}} は {{grp|gnome}} グループの一つとして自動的にインストールされます。GNOME を使っていない場合は[[公式リポトリ]]から {{Pkg|gnome-keyring}} をインストールしてください{{Pkg|libsecret}} もインストールして、他のアプリケーションにキーリングへのアクセスを許可する必要があります。{{Pkg|libgnome-keyring}} は非推奨になりました(そして、libsecret にとって代わられました)が、それでも特定のアプリケーションで必要になる場合があります。


{{Pkg|gnome-keyring}} は {{Grp|gnome}} グループの一部なので、GNOME を使用しているのであればすでにインストールされています。またこのパッケーは単独でインストールすることもできます。他のアプリケーションにキーリングへのアクセス与えるために {{Pkg|libsecret}} もインストールする必要があります。{{Pkg|libgnome-keyring}} は非推奨になりました (後継は ''libsecret'' です) が、それでも特定のアプリケーションで必要になる場合があります。
gnome-keyring-daemon は、ログイン時に systemd ユーザー サービスを介して自動的に開始されます。また、ソケットを介して要求に応じて開始ることもできます。


gnome-keyring-daemon は、ログイン時に systemd ユーザーサービスを介して自動的に開始されます。また、ソケットを介して要求に応じて開始させることもできます。
GNOME キーリングに関する追加のユーティリティは次の通りです:


GNOME Keyring に関する追加のユーティリティは次の通りです:
* {{App|secret-tool|コマンドラインから GNOME Keyring (や [https://standards.freedesktop.org/secret-service/ DBus Secret Service API] 実装された他のサービス) にアクセス。|https://wiki.gnome.org/Projects/Libsecret|{{Pkg|libsecret}}}}
* {{App|lssecret|''libsecret'' を使用してすべてのシークレットアイテムを一覧表示する (例えば、GNOME Keyring)|https://gitlab.com/GrantMoyer/lssecret|{{AUR|lssecret-git}}}}


* {{App|secret-tool|コマンドラインから GNOME Keyring (や [https://specifications.freedesktop.org/secret-service/ DBus Secret Service API] 実装する他のサービス) にアクセスします。|https://wiki.gnome.org/Projects/Libsecret|{{Pkg|libsecret}}}}
== GUI で管理 ==
* {{App|lssecret|''libsecret'' を使用してすべてのシークレットアイテム (例えば、GNOME Keyring) を一覧表示します。|https://gitlab.com/GrantMoyer/lssecret|{{AUR|lssecret-git}}}}
GNOME Keyring は Seahorse を使って管理することができます。公式リポジトリから {{Pkg|seahorse}} パッケージをインストールしてください。


== GUI で管理する ==
GNOME Keyring のパスワードを空にしたり変更することが可能です。Seahorse を開いて、ドロップダウンメニューの "View" から "By Keyring" を選択してください。Passwords タブを開いて、"Passwords: login" を右クリックして "Change password" を選択してください。旧パスワードを入力してから新しいパスワードを入力します。暗号化されていないストレージを使用しているという警告が表示されるので "Use Unsafe Storage" を押して下さい。

GNOME Keyring は Seahorse を使って管理することができます。{{Pkg|seahorse}} パッケージを[[インストール]]してください。

キーリング (例えば、デフォルトキーリングである "Login") のパスワードは変更するとが可能であり、さらには削除することも可能です。詳細は GNOME Help の [https://help.gnome.org/users/seahorse/stable/keyring-create.html Create a new keyring] と [https://help.gnome.org/users/seahorse/stable/keyring-update-password.html Update the keyring password] を参照してください。


== キーリングを使用する ==
== キーリングを使用する ==


[[PAM]] モジュール ''pam_gnome_keyring.so'' は、GNOME キーリングを部分的に初期化し、そのプロセスでデフォルトの ''login'' キーリングのロックを解除します。その後、初期化を完了して、環境変数を設定する {{ic|--start}} オプションを指定して ''gnome-keyring-daemon'' を呼び出す必要があります。
[[PAM]] モジュール ''pam_gnome_keyring.so'' は、GNOME キーリングを部分的に初期化し、その過程でデフォルトの ''login'' キーリングのロックを解除します。gnome-keyring-daemon は systemd ユーザサービスによって自動的に開始されます。


=== PAM ステップ ===
=== PAM の手順 ===

{{Note|'''自動ログインを使用しない場合'''キーリングのロックを自動的にアンロックしたい場合、ユーザアカウントのパスワードデフォルトのキーリングのパスワードを同じにする必要があります。[[#キーリングのパスワードをユーザのパスワードへ自動的に変更する]] を参照してください。}}


{{Note|自動ログインせず自動ロックを解除したい場合、ユーザアカウントとキーリングに同一のパスワードを設定する必要があります。[[#Automatically change keyring password with user password]] を参照してください。}}
{{Tip|
{{Tip|
* 自動ログイン自動ロック解除を使用するには、デフォルトのキーホルダーに空白のパスワードを設定します。この場合、キーリングの内容は暗号化されずに保存されることに注意してください。
* 自動ログインを使用している場合にキーリングを自動的にアンロックするには、デフォルトのキーリングのパスワードを空白に設定すればよいです。この場合、キーリングの内容は暗号化されずに保存されることに注意してください。
* あるいは、GDM と LUKS を使ている場合、GDM は LUKS のパスワードと一致すればキーリングをロック解除することができます。これを動かすには、[[Dm-crypt/システム設定#sd-encrypt フックを使う|適切なカーネルパラメータ]]と同様に、[[Mkinitcpio#Common hooks|mkinitcpio.conf で systemd init]] を使必要があります。詳しくは [https://reddit.com/r/Fedora/comments/jwnqq5/] を参照してください。
* あるいは、GDM と LUKS を使用している場合、キーリングのパスワードが LUKS のパスワードと一致すれば、GDM はキーリングをアンロックすることができます。そうには、[[mkinitcpio#通常のフック|mkinitcpio.conf で systemd init]] を使用し、かつ[[Dm-crypt/システム設定#systemd-cryptsetup-generator を使う|適切なカーネルパラメータ]]を使用する必要があります。詳は [https://reddit.com/r/Fedora/comments/jwnqq5/] を参照してください。
* PAM ステップは省略しても動きます。これは、デーモンがまだ実行されていないときに[[#--start step|次のスップ]]でデーモンが初期化されるためです。ただ、この場合、デフォルトのキーリングはロック解除されません。詳細についてはURLご覧ください [https://wiki.gnome.org/Projects/GnomeKeyring/RunningDaemon]。
* 以下の PAM の手順をップしたい場合、デフォルトのキーリングを手動で、あるい他の方法によってアンロックしなけばなりません。[[#デスクトップ環境 (KDEGNOME、XFCE など) 外で gnome-keyring-daemon 起動する]] と [https://wiki.gnome.org/Projects/GnomeKeyring/RunningDaemon GnomeKeyring wiki] を参照してください
}}
}}


ディスプレイマネージャを使用る場合、ほとんどのケースでキーリングはそのまま機能します。[[GDM]]、[[LightDM]]、[[LXDM]]、[[SDDM]] はすでに必要な PAM 設定があります。キーリングのロックを自動的に解除しないディスプレイマネージャの場合は、以下のような {{ic|/etc/pam.d/login}} の代わりに適切なファイルを編集してください。
ディスプレイマネージャを使用している場合、ほとんどのケースで特に設定せずともキーリングは機能します。[[GDM]]、[[LightDM]]、[[LXDM]]、そして [[SDDM]] はすでに必須の PAM 設定が含まれています。キーリングのロックを自動的に解除しないディスプレイマネージャの場合は、以下で言及している {{ic|/etc/pam.d/login}} 以外の適切なファイルを適切に編集してください。


コンソールベースのログインを行う場合は、{{ic|/etc/pam.d/login}} を編集してください:
{{ic|/etc/pam.d/login}} から gnome-keyring-daemon を起動:


{{ic|auth}} セクションの最後に {{ic|auth optional pam_gnome_keyring.so}} を追加し{{ic|session}} セクションの最後に {{ic|session optional pam_gnome_keyring.so auto_start}} を追加してください。
{{ic|auth}} セクションの最後に {{ic|auth optional pam_gnome_keyring.so}} を追加し{{ic|session}} セクションの最後に {{ic|session optional pam_gnome_keyring.so auto_start}} を追加してください。


{{hc|/etc/pam.d/login|
{{hc|/etc/pam.d/login|
48行目: 51行目:
account include system-local-login
account include system-local-login
session include system-local-login
session include system-local-login
'''session optional pam_gnome_keyring.so auto_start'''}}
'''session optional pam_gnome_keyring.so auto_start'''
}}

GNOME、Unity、Cinnamon、MATE を使用している場合は、これで完了です。初期化が完了し、環境変数が自動的に設定されます。


== SSH 鍵 ==
== SSH 鍵 ==
107行目: 109行目:
=== アプリケーションとの統合 ===
=== アプリケーションとの統合 ===


* [[Chromium#Force a password store|Chromium]]
* [[Chromium#特定のパスワードストアを強制する|Chromium]]


=== パスフレーズの消去 ===
=== パスフレーズの消去 ===
113行目: 115行目:
$ gnome-keyring-daemon -r -d
$ gnome-keyring-daemon -r -d


上記のコマンド、実行中のインスタンス終了して、新しい gnome-keyring-daemon が起動します。
のコマンドgnome-keyring-daemon を開始し、以前の実行中のインスタンス終了します。


=== Git 統合 ===
=== Git 統合 ===


GNOME キーリングは、HTTPS でプッシュするときに [[Git]] と一緒に使うと便利です。この機能を用するには、{{Pkg|libsecret}} パッケージ[[#インストール|インストール]]する必要があります。
GNOME Keyring は、HTTPS 経由でプッシュするときに [[Git]] と一緒に使うと便利です。この機能を使用するには、{{Pkg|libsecret}} パッケージ[[#インストール|インストールされている必要があります]]


''libsecret'' ヘルパーを使うように Git を設定:
''libsecret'' ヘルパーを使うように Git を設定してください:


$ git config --global credential.helper /usr/lib/git-core/git-credential-gnome-keyring
$ git config --global credential.helper /usr/lib/git-core/git-credential-libsecret


これで ''git push'' を実行したときに、キーリングのロックが解除されていなかった場合解除するよう要求されます。
これで、次回 {{ic|git push}} を実行したときに、キーリングがまだ解除されていな場合解除するよう要求されます。


=== GnuPG 統合 ===
=== GnuPG 統合 ===


GnuPG を使用するいくつかのアプリケーションは、{{ic|pinentry-program}} 設定をします。GNOME 3 pinentry for GNOME Keyring を使用してパスフレーズプロンプトを管理するために以下を設定します。
GnuPG を使用するいくつかのアプリケーションは、{{ic|pinentry-program}} 設定されていることを要します。GNOME 3 pinentry for GNOME Keyring を使用してパスフレーズプロンプトを管理するようするには、以下を設定してください:


{{hc|~/.gnupg/gpg-agent.conf|
{{hc|~/.gnupg/gpg-agent.conf|
133行目: 135行目:
}}
}}


もう一つのオプションは、[[GnuPG#無人のパスフレーズ|GPG のループバックを強制]]することで、アプリケーションでパスフレーズを入力できるようにすることです。
もう一つのオプションは、[[GnuPG#無人のパスフレーズ|GPG のループバックを強制する]]ことで、アプリケーションでパスフレーズを入力できるようにすることです。


=== キーリングの名前変更 ===
=== キーリングの名前変更 ===


キーリングの表示名 (つまり、Seahorse および {{ic|file}} 表示される名前) は [https://ttboj.wordpress.com/2013/01/27/renaming-a- gnome-keyring-for-seahorse-the-passwords-and-keyrings-application/ 暗号化されていないキーリングファイル display-name の値を変更する] キーリングは通常、''.keyring'' ファイル拡張子を付けて {{ic|~/.local/share/keyrings/}} に保存されます。
キーリングの表示名 (つまり、Seahorse {{ic|file}} 表示される名前) は[https://ttboj.wordpress.com/2013/01/27/renaming-a-gnome-keyring-for-seahorse-the-passwords-and-keyrings-application/ 暗号化されていないキーリングファイル内で display-name の値を変更する]ことで、変更することができます。キーリングは通常、{{ic|~/.local/share/keyrings/}} ''.keyring'' という拡張子が付けられて保存されています。


=== キーリングのパスワードをユーザパスワード自動的に変更 ===
=== キーリングのパスワードをユーザパスワード自動的に変更する ===


{{Note|これはデフォルトのキーリングにのみ影響しま。}}
{{Note|これはデフォルトのキーリングにしか影響しません。}}


{{ic|password optional pam_gnome_keyring.so}} を {{ic|/etc/pam.d/passwd}} の末尾に追加します。
{{ic|/etc/pam.d/passwd}} の末尾に {{ic|password optional pam_gnome_keyring.so}} を追加してください:


{{hc|/etc/pam.d/passwd|2=
{{hc|/etc/pam.d/passwd|2=
154行目: 156行目:
}}
}}


=== デスクトップ環境以外 (KDE、GNOME、XFCE など) で gnome-keyring-daemon を起動する ===
=== デスクトップ環境 (KDE、GNOME、XFCE など) の外で gnome-keyring-daemon を起動する ===


{{Accuracy|At least [[xinit]] and [[SDDM]] execute all scripts from {{ic|/etc/X11/xinit/xinitrc.d/}} and [[sway]] provides {{ic|/etc/sway/config.d/50-systemd-user.conf}} so the problem is not being "outside desktop environments". If gnome-keyring requires [[XDG Autostart]], the installation/configuration section should say so.|section=Launching gnome-keyring-daemon outside desktop environments (KDE,_GNOME,_XFCE,_...)}}
{{Accuracy|少なくとも [[xinit]] [[SDDM]] {{ic|/etc/X11/xinit/xinitrc.d/}} 内のスクリプトを全て実行するし、[[sway]] {{ic|/etc/sway/config.d/50-systemd-user.conf}} を提供しているので、問題は "デスクトップ環境の外" ではありません。gnome-keyring [[XDG Autostart]] を必要とするならば、インストール/設定のセクションでもそう書かれてあるべきです。英語版の議論ページ: [[:en:Talk:GNOME/Keyring#Launching_gnome-keyring-daemon_outside_desktop_environments_(KDE,_GNOME,_XFCE,_...)]]。}}


swayi3、または実行されないウィンドウマネージャを使用している場合
swayi3、または以下のファイルを実行ないウィンドウマネージャを使用している場合:


* {{ic|/etc/xdg/autostart/gnome-keyring-*.desktop}}
* {{ic|/etc/xdg/autostart/gnome-keyring-*.desktop}}
* {{ic|/etc/X11/xinit/xinitrc.d/50-systemd-user.sh}}
* {{ic|/etc/X11/xinit/xinitrc.d/50-systemd-user.sh}}


ウィンドウマネージャの起動時にのコマンド実行る必要があります。コマンド特定の順序で実行する必要はありません。
ウィンドウマネージャの起動時に以下のコマンドがウィンドウマネージャによって実行される必要があります。以下のコマンドを何らかの特定の順序で実行する必要はありません。


{{bc|dbus-update-activation-environment DISPLAY XAUTHORITY WAYLAND_DISPLAY}}
{{bc|dbus-update-activation-environment DISPLAY XAUTHORITY WAYLAND_DISPLAY}}

または
または

{{bc|dbus-update-activation-environment --all}}
{{bc|dbus-update-activation-environment --all}}


このコマンドは、環境変数をウィンドウマネージャから dBus セッションに渡します。これがないと、dbus 経由で GUI プロンプトをトリガーできません。たとえば、これは seahorse パスワードプロンプト必要です。
このコマンドは、環境変数をウィンドウマネージャから dbus セッションに渡します。これがないと、DBus 経由で GUI プロンプトをトリガーできません。えば、これは seahorse パスワードプロンプト必要です。


これは、グラフィカル環境が開始される前に dbus セッションが開始されるために必要です。したがって、dbus セッションはあなたがいるグラフィカルな環境について知らないのです。誰か、または何かが、グラフィカル環境を記述する環境変数を dbus セッションに渡すことによって、グラフィカル環境について dbus セッションに教えなければなりません。
これが必要になるのは、グラフィカル環境が開始される前に dbus セッションが開始されるからです。したがって、dbus セッションはあなたがいるグラフィカルな環境について知らないのです。誰か、または何かが、グラフィカル環境を記述する環境変数を dbus に渡すこと、グラフィカル環境について dbus セッションに教えなければなりません。


{{bc|1=gnome-keyring-daemon --start --components=secrets}}
{{bc|1=gnome-keyring-daemon --start --components=secrets}}


ログイン時に {{ic|gnome-keyring-daemon --login}} が起動し、gnome-keyring ログインパスワードアンロックた状態にます。もし {{ic|gnome-keyring-daemon --login}} が数分以内に dbus セッションに接続されなければ、{{ic|gnome-keyring-daemon --login}} は終了します。{{ic|gnome-keyring-daemon --start ...}} がウィンドウマネージャ dbus セッションに対して起動されると、{{ic|gnome-keyring-daemon --login}} は dbus セッションに接続されます。ログインセッションが {{ic|gnome-keyring-daemon --start ...}} を起動しないまま {{ic|gnome-keyring-daemon --login}} が終了すると、 gnome-keyring や secret service API を使用したプログラムも終了してしまいます、その場合は {{ic|gnome-keyring-daemon --login}} が終了するまで待つ必要が有ります。
ログイン時に PAM は {{ic|gnome-keyring-daemon --login}} を実行ます。これにより、gnome-keyring ログインパスワードによってアンロックされた状態になります。もし {{ic|gnome-keyring-daemon --login}} が数分以内に dbus セッションに接続されなければ、{{ic|gnome-keyring-daemon --login}} は終了します。{{ic|gnome-keyring-daemon --start ...}} がウィンドウマネージャ内で dbus セッションに対して起動されると、{{ic|gnome-keyring-daemon --login}} は dbus セッションに接続されます。ログインセッションが {{ic|gnome-keyring-daemon --start ...}} を開始する前に {{ic|gnome-keyring-daemon --login}} が終了すると、gnome-keyring や secret service API を使用するプログラムも使えなくなってしまいます。


== トラブルシューティング ==
== トラブルシューティング ==
181行目: 185行目:
=== パスワードが保存されない ===
=== パスワードが保存されない ===


ログイン毎回パスワードプロンプトが表示され、パスワードが保存されない場合は、デフォルトのキーリングを作成設定する必要があります。
ログインするたびにパスワードプロンプトが表示され、パスワードが保存されない場合は、デフォルトのキーリングを作成/設定する必要がある場合があります。Seahorse (別名、パスワードと鍵) を使ってこれを行う方法については、GNOME Help の [https://help.gnome.org/users/seahorse/stable/keyring-create.html Create a new keyring] と [https://help.gnome.org/users/seahorse/stable/keyring-change-default.html Change the default keyring] を参照してください

Seahorse を使用してれを行うにはGNOME ヘルプの [https://help.gnome.org/users/seahorse/stable/keyring-create.html Create a new keyring] と [https://help.gnome.org/users/seahorse/stable/keyring-change-default.html Change the default keyring] を参照してください。


=== キーリングのリセット ===
=== キーリングのリセット ===


以下のエラーメッセージが表示され場合は、ログインキーリングの[[#GUI で管理|パスワードを変更]]する必要があります。"The password you use to login to your computer no longer matches that of your login keyring"
"The password you use to login to your computer no longer matches that of your login keyring" といったエラーメッセージが表示され場合は、[[#GUI で管理する|ログインキーリングのパスワードを変更する]]必要があります。


または、{{ic|~/.local/share/keyrings/}} から {{ic|login.keyring}} と {{ic|user.keystore}} ファイルを削除することもできます。この操作行うと、保存されているすべての鍵が永久に削除されますので注意ください。ファイルを削除した、ログアウトして再度ログインしてください。
または、{{ic|~/.local/share/keyrings/}} から {{ic|login.keyring}} ファイルと {{ic|user.keystore}} ファイルを削除することもできます。これらファイル削除すると、保存されている鍵が永久に削除されので注意してください。これらの削除した一旦ログアウトしログインし直してください。


=== Unable to locate daemon control file ===
=== デーモンコントロールファイルが見つからない ===


ログイン後の [[journal]] に以下のようなエラーが表示されることがあります。
ログイン後に以下エラーが [[journal]] に表示される場合:


gkr-pam: unable to locate daemon control file
gkr-pam: unable to locate daemon control file


このメッセージは、他に関連する問題がなれば、「無視しても大丈夫」です[https://bbs.archlinux.org/viewtopic.php?pid=1940190#p1940190]。
関連する他の問題が発生していいのであれば、このメッセージは安全に無視することがきま[https://bbs.archlinux.org/viewtopic.php?pid=1940190#p1940190]。


=== No such secret collection at path: / ===
=== No such secret collection at path: / ===


カスタム {{ic|~/.xinitrc}} を使用していて、Seahorse で新しいキーリングを作成しようとしたときにこのエラーが発生した場合は、の行を追加することで解決できる可能性があります
カスタム {{ic|~/.xinitrc}} を使用していて、Seahorse で新しいキーリングを作成使用したときにこのエラーが発生する場合は、以下の行を追加することで解決できる可能性があります[https://bbs.archlinux.org/viewtopic.php?pid=1640822#p1640822]:


{{hc|~/.xinitrc|
{{hc|~/.xinitrc|
209行目: 211行目:
=== ターミナルに "discover_other_daemon: 1" というメッセージが表示される ===
=== ターミナルに "discover_other_daemon: 1" というメッセージが表示される ===


これは gnome-keyring-deamonして起動されたことが原因です。systemd サービスデーモンと一緒に提供されるため、別の方法で開始する必要はありません。そのため、{{ic|.zshenv}}、{{ic|.bash_profile}}、{{ic|.xinitrc}}、{{ic|config.fish}} から開始コマンドを必ず削除してください。または、{{ic|gnome-keyring-daemon.service}} および {{ic|gnome-keyring-daemon.socket}} [[ユーザーユニット]]を[[無効化]]することもできます。
これは ''gnome-keyring-daemon'' が複数回起動されたことが原因です。Systemd サービスが gnome keyring のデーモンと一緒に提供されるため、別の方法で起動する必要はありません。そのため、{{ic|.zshenv}}、{{ic|.bash_profile}}、{{ic|.xinitrc}}、{{ic|config.fish}}、その他の似たよう場所から ''gnome-keyring-daemon'' を起動するコマンドを削除してください。あるいは、{{ic|gnome-keyring-daemon.service}} {{ic|gnome-keyring-daemon.socket}} [[ユーザーユニット]]を[[無効化]]することもできます。


== 参照 ==
== 参照 ==
215行目: 217行目:
* https://help.gnome.org/users/seahorse/stable/
* https://help.gnome.org/users/seahorse/stable/
* [https://wiki.gnome.org/action/show/Projects/GnomeKeyring GNOME Wiki ページ]
* [https://wiki.gnome.org/action/show/Projects/GnomeKeyring GNOME Wiki ページ]

{{TranslationStatus|GNOME/Keyring|2023-09-02|786683}}

2023年9月2日 (土) 16:41時点における版

GNOME Keyring は「シークレット・パスワード・鍵・証明書を保存し、それらをアプリケーションから利用できるようにする GNOME のコンポーネントのコレクション」です。

インストール

gnome-keyringgnome グループの一部なので、GNOME を使用しているのであればすでにインストールされています。また、このパッケージは単独でインストールすることもできます。他のアプリケーションにキーリングへのアクセス権を与えるために libsecret もインストールする必要があります。libgnome-keyring は非推奨になりました (後継は libsecret です) が、それでも特定のアプリケーションで必要になる場合があります。

gnome-keyring-daemon は、ログイン時に systemd ユーザーサービスを介して自動的に開始されます。また、ソケットを介して要求に応じて開始させることもできます。

GNOME Keyring に関する追加のユーティリティは次の通りです:

  • secret-tool — コマンドラインから GNOME Keyring (や DBus Secret Service API を実装する他のサービス) にアクセスします。
https://wiki.gnome.org/Projects/Libsecret || libsecret
  • lssecretlibsecret を使用してすべてのシークレットアイテム (例えば、GNOME Keyring) を一覧表示します。
https://gitlab.com/GrantMoyer/lssecret || lssecret-gitAUR

GUI で管理する

GNOME Keyring は Seahorse を使って管理することができます。seahorse パッケージをインストールしてください。

キーリング (例えば、デフォルトキーリングである "Login") のパスワードは変更することが可能であり、さらには削除することも可能です。詳細は GNOME Help の Create a new keyringUpdate the keyring password を参照してください。

キーリングを使用する

PAM モジュール pam_gnome_keyring.so は、GNOME キーリングを部分的に初期化し、その過程でデフォルトの login キーリングのロックを解除します。gnome-keyring-daemon は systemd ユーザサービスによって自動的に開始されます。

PAM の手順

ノート 自動ログインを使用しない場合にキーリングのロックを自動的にアンロックしたい場合、ユーザアカウントのパスワードとデフォルトのキーリングのパスワードを同じにする必要があります。#キーリングのパスワードをユーザのパスワードへ自動的に変更する を参照してください。
ヒント
  • 自動ログインを使用している場合にキーリングを自動的にアンロックするには、デフォルトのキーリングのパスワードを空白に設定すればよいです。この場合、キーリングの内容は暗号化されずに保存されることに注意してください。
  • あるいは、GDM と LUKS を使用している場合、キーリングのパスワードが LUKS のパスワードと一致すれば、GDM はキーリングをアンロックすることができます。そうするには、mkinitcpio.conf で systemd init を使用し、かつ適切なカーネルパラメータを使用する必要があります。詳細は [1] を参照してください。
  • 以下の PAM の手順をスキップしたい場合は、デフォルトのキーリングを手動で、あるいは他の方法によってアンロックしなければなりません。#デスクトップ環境 (KDE、GNOME、XFCE など) の外で gnome-keyring-daemon を起動するGnomeKeyring wiki を参照してください。

ディスプレイマネージャを使用している場合、ほとんどのケースで特に設定せずともキーリングは機能します。GDMLightDMLXDM、そして SDDM にはすでに必須の PAM 設定が含まれています。キーリングのロックを自動的に解除しないディスプレイマネージャの場合は、以下で言及している /etc/pam.d/login 以外の適切なファイルを適切に編集してください。

コンソールベースのログインを行う場合は、/etc/pam.d/login を編集してください:

auth セクションの最後に auth optional pam_gnome_keyring.so を追加し、session セクションの最後に session optional pam_gnome_keyring.so auto_start を追加してください。

/etc/pam.d/login
#%PAM-1.0

auth       required     pam_securetty.so
auth       requisite    pam_nologin.so
auth       include      system-local-login
auth       optional     pam_gnome_keyring.so
account    include      system-local-login
session    include      system-local-login
session    optional     pam_gnome_keyring.so auto_start

SSH 鍵

GNOME Keyring は、ssh-agent のラッパとして振る舞うことができます。このモードでは、SSH 鍵をアンロックする必要が生じた度に GUI パスワード入力ダイアログを表示します。このダイアログには、入力したパスワードを記憶するかどうか尋ねるチェックボックスが含まれています。このチェックボックスを選択すると、ログインキーリングがアンロックされている限り、今後そのキーを使用する際にパスワードを入力する必要が無くなります。

GNOME 41 (2021年9月リリース) からこの (英語版の) 記事が書かれた時点 (2023年4月) まで、gnome-keyring-daemon の SSH 機能は (gcr の一部である) /usr/lib/gcr-ssh-agent複製されています。最終的には gnome-keyring-daemon からその (SSH の) 実装を削除する計画になっていますが、その動きは失速しています。それが行われるまでは、どの実装を使用しているかに注意をはらうべきです。なぜなら、実装ごとに異なる方法でセットアップされ使用されるからです:

gcr-ssh-agent

gcr-ssh-agent 実装は、これら2つの実装の中で最もプラグ・アンド・プレイです。また、最終的にはこの実装が唯一の実装になるので、特別な理由がない限りはこれを使用すべきです。

この実装を使用するために必要なことは:

  1. gcr-ssh-agent.socket systemd ユーザユニットを有効化する。例えば、systemctl --user enable gcr-ssh-agent.socket を実行する。
  2. SSH_AUTH_SOCK 環境変数を $XDG_RUNTIME_DIR/gcr/ssh に設定して SSH コマンドを実行する。環境変数を設定する方法はたくさんあります。使用するべき方法は、あなたのセットアップと好みに依ります。

gnome-keyring-daemon "ssh" コンポーネント

古い gnome-keyring-daemon 実装を使うことに決めたならば、gnome-keyring-daemon--components 引数に ssh を含めて実行されている必要があります。XDG Autostart を使用するデスクトップ環境の場合、/etc/xdg/autostart/gnome-keyring-ssh.desktop を介して自動的に実行されます。他のデスクトップ環境の場合、gnome-keyring-daemon.service ユーザユニットの ExecStart を編集する必要があります (デフォルトで SSH コンポーネントを起動しないからです)。方法は Systemd#ユニットファイルの編集 を参照してください。

コンポーネントが実行されることを確認したら、上記の方法と同じように SSH_AUTH_SOCK 環境変数を $XDG_RUNTIME_DIR/keyring/ssh に設定してください。注意点として、gcr-ssh-agent と gnome-keyring-daemon は、ほとんど同じ実装を含んでいるにも関わらず、異なるソケットパスをリッスンします。

使用する

あなたが選んだ実装に依らず、以下を実行することで、実行中のエージェントにロードされている SSH 鍵をリストアップできます:

$ ssh-add -L

これにより、適切なサービスが起動されていて、SSH_AUTH_SOCK が適切に設定されていることを確認することができます。

パスフレーズをキーリングに永続的に保存するには、seahorse パッケージの ssh-askpass を使用してください:

$ /usr/lib/seahorse/ssh-askpass my_key

他のディレクトリから SSH 鍵を手動で追加するには:

$ ssh-add ~/.private/id_rsa
Enter passphrase for ~/.private/id_rsa:
ノート 秘密鍵と同じディレクトリ (上記の例では ~/.ssh/id_rsa.pub) に対応する .pub ファイルが必要です。また、公開鍵のファイル名が秘密鍵に .pub を付けた名前になっていることを確認してください (例: my_key.pub)。

手動で追加した鍵をすべて無効化するには:

$ ssh-add -D

無効化する

別の SSH エージェントを実行したい場合 (例: ssh-agentgpg-agent)、GNOME Keyring の ssh-agent ラッパを無効化するのは良い考えです。各エージェントは異なるソケットをリッスンし、SSH_AUTH_SOCK を使ってエージェントを選ぶことができるので、厳密には必須ではありませんが、デバッグの問題を簡単にできます。

gcr-ssh-agent の実装を無効化するには、gcr-ssh-agent.socketgcr-ssh-agent.service を両方とも systemd で無効化・停止してください。

アカウントローカルな方法で gnome-keyring-daemon 実装を無効化するには、/etc/xdg/autostart/gnome-keyring-ssh.desktop~/.config/autostart/ にコピーし、コピー先のファイルに Hidden=true という行を末尾に追加してください。また、上記の手順で gnome-keyring-daemon.service に対して行った編集もすべて元に戻してください。

ヒントとテクニック

アプリケーションとの統合

パスフレーズの消去

$ gnome-keyring-daemon -r -d

このコマンドは、gnome-keyring-daemon を開始し、以前の実行中のインスタンスを終了します。

Git 統合

GNOME Keyring は、HTTPS 経由でプッシュするときに Git と一緒に使うと便利です。この機能を使用するには、libsecret パッケージがインストールされている必要があります

libsecret ヘルパーを使うように Git を設定してください:

$ git config --global credential.helper /usr/lib/git-core/git-credential-libsecret

これで、次回 git push を実行したときに、キーリングがまだ解除されていない場合に解除するよう要求されます。

GnuPG 統合

GnuPG を使用するいくつかのアプリケーションは、pinentry-program が設定されていることを要求します。GNOME 3 pinentry for GNOME Keyring を使用してパスフレーズのプロンプトを管理するようにするには、以下を設定してください:

~/.gnupg/gpg-agent.conf
pinentry-program /usr/bin/pinentry-gnome3

もう一つのオプションは、GPG のループバックを強制することで、アプリケーションでパスフレーズを入力できるようにすることです。

キーリングの名前変更

キーリングの表示名 (つまり、Seahorse や file で表示される名前) は、暗号化されていないキーリングファイル内で display-name の値を変更することで、変更することができます。キーリングは通常、~/.local/share/keyrings/ 内に .keyring という拡張子が付けられて保存されています。

キーリングのパスワードをユーザのパスワードへ自動的に変更する

ノート これは、デフォルトのキーリングにしか影響しません。

/etc/pam.d/passwd の末尾に password optional pam_gnome_keyring.so を追加してください:

/etc/pam.d/passwd
#%PAM-1.0

#password	required	pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3
#password	required	pam_unix.so sha512 shadow use_authtok
password	required	pam_unix.so sha512 shadow nullok
password	optional	pam_gnome_keyring.so

デスクトップ環境 (KDE、GNOME、XFCE など) の外で gnome-keyring-daemon を起動する

この記事またはセクションの正確性には問題があります。
理由: 少なくとも xinitSDDM/etc/X11/xinit/xinitrc.d/ 内のスクリプトを全て実行するし、sway/etc/sway/config.d/50-systemd-user.conf を提供しているので、問題は "デスクトップ環境の外" ではありません。gnome-keyring が XDG Autostart を必要とするならば、インストール/設定のセクションでもそう書かれてあるべきです。英語版の議論ページ: en:Talk:GNOME/Keyring#Launching_gnome-keyring-daemon_outside_desktop_environments_(KDE,_GNOME,_XFCE,_...)。 (議論: トーク:GNOME/Keyring#)

sway や i3、または以下のファイルを実行しないウィンドウマネージャを使用している場合:

  • /etc/xdg/autostart/gnome-keyring-*.desktop
  • /etc/X11/xinit/xinitrc.d/50-systemd-user.sh

ウィンドウマネージャの起動時に以下のコマンドがウィンドウマネージャによって実行される必要があります。以下のコマンドを何らかの特定の順序で実行する必要はありません。

dbus-update-activation-environment DISPLAY XAUTHORITY WAYLAND_DISPLAY

または

dbus-update-activation-environment --all

このコマンドは、環境変数をウィンドウマネージャから dbus セッションに渡します。これがないと、DBus 経由で GUI プロンプトをトリガーできません。例えば、これは seahorse のパスワードプロンプトで必要です。

これが必要になるのは、グラフィカル環境が開始される前に dbus セッションが開始されるからです。したがって、dbus セッションは、あなたがいるグラフィカルな環境について知らないのです。誰か、または何かが、グラフィカル環境を記述する環境変数を dbus に渡すことで、グラフィカルな環境について dbus セッションに教えなければなりません。

gnome-keyring-daemon --start --components=secrets

ログイン時に PAM は gnome-keyring-daemon --login を実行します。これにより、gnome-keyring がログインパスワードによってアンロックされた状態になります。もし gnome-keyring-daemon --login が数分以内に dbus セッションに接続されなければ、gnome-keyring-daemon --login は終了します。gnome-keyring-daemon --start ... がウィンドウ・マネージャ内で dbus セッションに対して起動されると、gnome-keyring-daemon --login は dbus セッションに接続されます。ログインセッションが gnome-keyring-daemon --start ... を開始する前に gnome-keyring-daemon --login が終了すると、gnome-keyring や secret service API を使用するプログラムも使えなくなってしまいます。

トラブルシューティング

パスワードが保存されない

ログインするたびにパスワードプロンプトが表示され、パスワードが保存されない場合は、デフォルトのキーリングを作成/設定する必要がある場合があります。Seahorse (別名、パスワードと鍵) を使ってこれを行う方法については、GNOME Help の Create a new keyringChange the default keyring を参照してください。

キーリングのリセット

"The password you use to login to your computer no longer matches that of your login keyring" といったエラーメッセージが表示される場合は、ログインキーリングのパスワードを変更する必要があります。

または、~/.local/share/keyrings/ から login.keyring ファイルと user.keystore ファイルを削除することもできます。これらのファイルを削除すると、保存されている全鍵が永久に削除されるので注意してください。これらの削除したら、一旦ログアウトし、ログインし直してください。

Unable to locate daemon control file

ログイン後に以下のエラーが journal に表示される場合:

gkr-pam: unable to locate daemon control file

関連する他の問題が発生していないのであれば、このメッセージは「安全に無視することができます」[2]

No such secret collection at path: /

カスタムの ~/.xinitrc を使用していて、Seahorse で新しいキーリングを作成使用したときにこのエラーが発生する場合は、以下の行を追加することで解決できる可能性があります[3]:

~/.xinitrc
source /etc/X11/xinit/xinitrc.d/50-systemd-user.sh

ターミナルに "discover_other_daemon: 1" というメッセージが表示される

これは gnome-keyring-daemon が複数回起動されたことが原因です。Systemd サービスが gnome keyring のデーモンと一緒に提供されるため、別の方法で起動する必要はありません。そのため、.zshenv.bash_profile.xinitrcconfig.fish、その他の似たような場所から gnome-keyring-daemon を起動するコマンドを削除してください。あるいは、gnome-keyring-daemon.servicegnome-keyring-daemon.socket ユーザーユニット無効化することもできます。

参照

翻訳ステータス: このページは en:GNOME/Keyring の翻訳バージョンです。最後の翻訳日は 2023-09-02 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。