「GNOME/Keyring」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
 
(3人の利用者による、間の38版が非表示)
1行目: 1行目:
{{Translateme|翻訳へのご協力または英語版を参照してください。}}
 
 
 
[[Category:GNOME]]
 
[[Category:GNOME]]
  +
[[Category:OpenPGP]]
 
[[en:GNOME/Keyring]]
 
[[en:GNOME/Keyring]]
 
[[es:GNOME (Español)/Keyring]]
 
[[es:GNOME (Español)/Keyring]]
[[zh-hans:GNOME (简体中文)/Keyring]]
+
[[zh-hans:GNOME/Keyring]]
  +
{{Related articles start}}
  +
{{Related|GnuPG}}
  +
{{Related|OpenPGP}}
  +
{{Related articles end}}
  +
 
[https://wiki.gnome.org/Projects/GnomeKeyring GNOME Keyring] は「シークレット・パスワード・鍵・証明書を保存し、それらをアプリケーションから利用できるようにする GNOME のコンポーネントのコレクション」です。
 
[https://wiki.gnome.org/Projects/GnomeKeyring GNOME Keyring] は「シークレット・パスワード・鍵・証明書を保存し、それらをアプリケーションから利用できるようにする GNOME のコンポーネントのコレクション」です。
  +
  +
== セキュリティモデル ==
  +
  +
GNOME/Keyring API の動作に関連するセキュリティの問題 ([https://nvd.nist.gov/vuln/detail/CVE-2018-19358 CVE-2018-19358]) が過去に報告されています。いかなるアプリケーションも、キーリングのロックが解除されていれば、[https://github.com/sungjungk/keyring%20crack 任意のシークレットを簡単に読むことができてしまいます]。さらに、ユーザーがログインしていれば、ログイン/デフォルトのコレクションのロックは解除されています。D-Bus の保護機構 (busconfig とポリシー XML エレメントを含む) はデフォルトで使用されておらず、いずれにせよ、これも簡単にバイパスできてしまいます。
  +
  +
GNOME/Keyring のセキュリティモデルによれば、信頼されないアプリケーションはユーザーのセッションバスソケットへのアクセスを許可されないであろうことから、GNOME プロジェクトはこの脆弱性レポートに[https://gitlab.gnome.org/GNOME/gnome-keyring/-/issues/5#note_1876550 同意していません]。
  +
  +
Flatpak によってサンドボックス化されているアプリケーションは、この影響を受けません。
   
 
== インストール ==
 
== インストール ==
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 キーリングに関連する追加のユーティリティは次の通りです:
 
  +
  +
gnome-keyring-daemon は、ログイン時に systemd ユーザーサービスを介して自動的に開始されます。また、ソケットを介して要求に応じて開始させることもできます。
  +
  +
GNOME Keyring に関する追加のユーティリティは次の通りです:
  +
  +
* {{App|secret-tool|コマンドラインから GNOME Keyring (や [https://specifications.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}}}}
   
  +
== GUI で管理する ==
* {{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|List all secret items using ''libsecret'' (e.g. GNOME Keyring).|https://gitlab.com/GrantMoyer/lssecret|{{AUR|lssecret-git}}}}
 
* {{App|gnome-keyring-query|GNOME Keyring に保存したパスワードを確認するためのシンプルなコマンドラインツール。||{{AUR|gnome-keyring-query}}}}
 
   
  +
GNOME Keyring は Seahorse を使って管理することができます。{{Pkg|seahorse}} パッケージを[[インストール]]してください。
== GUI で管理 ==
 
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] を参照してください。
GNOME Keyring のパスワードを空にしたり変更することが可能です。Seahorse を開いて、ドロップダウンメニューの "View" から "By Keyring" を選択してください。Passwords タブを開いて、"Passwords: login" を右クリックして "Change password" を選択してください。旧パスワードを入力してから新しいパスワードを入力します。暗号化されていないストレージを使用しているという警告が表示されるので "Use Unsafe Storage" を押して下さい。
 
   
 
== キーリングを使用する ==
 
== キーリングを使用する ==
   
[[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|
49行目: 65行目:
 
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 を使用している場合は、これで完了です。初期化が完了し、環境変数が自動的に設定されます。
 
 
=== --start ステップ ===
 
 
デスクトップ環境として GNOME、Unity、Mate、Cinnamon を使用していない場合、初期化は自動的に完了しません。これは、さまざまな方法を使用して修正できます。
 
 
==== シェル ====
 
 
{{ic|~/.bash_profile}}、{{ic|~/.zshenv}} などに以下を追加します。
 
 
{{hc|~/.bash_profile|2=
 
if [ -n "$DESKTOP_SESSION" ];then
 
eval $(gnome-keyring-daemon --start)
 
export SSH_AUTH_SOCK
 
fi
 
 
}}
 
}}
   
  +
{{Note|[[greetd]] ログインマネージャを使用している場合、変更する必要のあるファイルは {{ic|/etc/pam.d/login}} ではなく {{ic|/etc/pam.d/greetd}} です。}}
{{hc|~/.config/fish/config.fish|2=
 
if test -n "$DESKTOP_SESSION"
 
set -x (gnome-keyring-daemon --start {{!}} string split "=")
 
end
 
}}
 
   
==== xinitrc を使う ====
+
== SSH ==
   
  +
GNOME Keyring は、[[SSH 鍵#ssh-agent|ssh-agent]] のラッパとして振る舞うことができます。このモードでは、SSH 鍵をアンロックする必要が生じた度に GUI パスワード入力ダイアログを表示します。このダイアログには、入力したパスワードを記憶するかどうか尋ねるチェックボックスが含まれています。このチェックボックスを選択すると、ログインキーリングがアンロックされている限り、今後そのキーを使用する際にパスワードを入力する必要が無くなります。
[[xinitrc]] から gnome-keyring-daemon を起動:
 
   
  +
バージョン [https://gitlab.gnome.org/GNOME/gnome-keyring/-/commit/25c5a1982467802fa12c6852b03c57924553ba73 1:46] から、gnome-keyring-daemon ビルドでは SSH の機能がデフォルトで無効化されています。この機能は {{ic|/usr/lib/gcr-ssh-agent}} ({{Pkg|gcr-4}} パッケージに含まれています) へと[https://gitlab.gnome.org/GNOME/gcr/-/merge_requests/67 移動されています]。gnome-keyring-daemon の SSH 実装は完全に削除されることが[https://fedoraproject.org/wiki/Changes/ModularGnomeKeyring 計画されています]。
{{hc|~/.xinitrc|<nowiki>
 
eval $(/usr/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh)
 
export SSH_AUTH_SOCK
 
</nowiki>}}
 
   
==== Xfce のみ ====
+
=== gcr をセットアップする ===
   
  +
やるべきことは:
Xfce の場合は、[[Xfce#SSH エージェント]] を確認。
 
  +
# {{ic|gcr-ssh-agent.socket}} systemd [[ユーザーユニット]]を[[有効化]]する。
  +
# SSH コマンドを実行する際に {{ic|SSH_AUTH_SOCK}} 環境変数を {{ic|$XDG_RUNTIME_DIR/gcr/ssh}} に設定しておく。環境変数を設定する方法は[[環境変数#変数の定義|たくさんあります]]。使用するべき方法は、あなたのセットアップと好みに依ります。
   
==== XDG autostart ====
+
=== 使用する ===
   
  +
以下を実行することで、実行中のエージェントにロードされている SSH 鍵をリストアップできます:
{{ic|/etc/xdg/autostart/}} から {{ic|gnome-keyring-ssh.desktop}}、{{ic|gnome-keyring-pkcs11.desktop}}、{{ic|gnome-keyring-secrets.desktop}} を {{ic|~/.config/autostart/}} にコピーし、各ファイルから {{ic|1=OnlyShowIn=GNOME;Unity;MATE;Cinnamon;}} 行を削除してください。ただし、この方法では環境変数 {{ic|SSH_AUTH_SOCK}} (および PAM のステップをスキップした場合のその他の変数) は設定され'''ない'''ことに注意してください。
 
   
  +
$ ssh-add -L
== SSH 鍵 ==
 
   
  +
これにより、適切なサービスが起動されていて、{{ic|SSH_AUTH_SOCK}} が適切に設定されていることを確認することができます。
'''ssh''' コンポーネントを含む '''gnome-keyring-daemon''' は、SSH エージェントを起動し、{{ic|~/.ssh/}} にある対応する ''.pub'' ファイルを持つすべての鍵を自動的にロードします。これらの鍵をエージェントから削除する方法はありません。
 
   
  +
パスフレーズをキーリングに永続的に保存するには、{{pkg|seahorse}} パッケージの ssh-askpass を使用してください:
すべてのロードされている鍵を確認するには:
 
   
  +
$ /usr/lib/seahorse/ssh-askpass ''my_key''
$ ssh-add -L
 
   
  +
他のディレクトリから SSH 鍵を手動で追加するには:
サーバーに接続するときに、鍵が使われてパスフレーズの入力を求めるダイアログがポップアップするようになります。ログイン時に自動的にロックを解除するオプションもあります。このオプションにチェックを入れている場合、もうパスフレーズを入力する必要はなくなります。
 
   
  +
$ ssh-add ~/.private/id_rsa
もしくは、キーリングにパスフレーズを永続的に保存したい場合、{{pkg|seahorse}} パッケージの seahorse-ssh-askpass を使います:
 
  +
Enter passphrase for ~/.private/id_rsa:
   
  +
{{Note|秘密鍵と同じディレクトリ (上記の例では {{ic|~/.ssh/id_rsa.pub}}) に対応する ''.pub'' ファイルが必要です。また、公開鍵のファイル名が秘密鍵に ''.pub'' を付けた名前になっていることを確認してください (例: {{ic|my_key.pub}})。}}
/usr/lib/seahorse/seahorse-ssh-askpass my_key
 
   
SSH 鍵を追加するには:
+
手動で追加した鍵をすべて無効化するには:
   
$ ssh-add ~/.ssh/id_dsa
+
$ ssh-add -D
Enter passphrase for /home/mith/.ssh/id_dsa:
 
   
  +
=== 無効化する ===
{{Note|秘密鍵と同じディレクトリ (上記の例では {{ic|~/.ssh/id_dsa.pub}}) に対応する {{ic|.pub}} ファイルが必要です。また、公開鍵のファイル名が秘密鍵に {{ic|.pub}} を付けた名前になっていることを確認してください (例: {{ic|my_key.pub}})。}}
 
   
  +
別の SSH エージェントを実行したい場合 (例: [[SSH 鍵#ssh-agent|ssh-agent]] や [[gpg-agent]])、GNOME Keyring の ssh-agent ラッパを無効化するのは良い考えです。各エージェントは異なるソケットをリッスンし、{{ic|SSH_AUTH_SOCK}} を使ってエージェントを選ぶことができるので、厳密には必須ではありませんが、デバッグの問題を簡単にできます。
=== キーリングデーモンの無効化 ===
 
  +
別の SSH エージェントを使いたい場合 (例: [[SSH 鍵#ssh-agent|ssh-agent]])、GNOME Keyring デーモンの SSH コンポーネントを無効化する必要があります:
 
  +
gcr-ssh-agent を無効化するには、{{ic|gcr-ssh-agent.socket}} と {{ic|gcr-ssh-agent.service}} を両方とも systemd で無効化・停止してください。
# ln -sf /dev/null /etc/xdg/autostart/gnome-keyring-ssh.desktop
 
ログアウトすることで変更が適用されます。
 
   
 
== ヒントとテクニック ==
 
== ヒントとテクニック ==
121行目: 115行目:
 
=== アプリケーションとの統合 ===
 
=== アプリケーションとの統合 ===
   
* [[Chromium#Force a password store|Chromium]]
+
* [[Chromium#特定のパスワードストアを強制する|Chromium]]
   
 
=== パスフレーズの消去 ===
 
=== パスフレーズの消去 ===
127行目: 121行目:
 
$ 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|
147行目: 141行目:
 
}}
 
}}
   
もう一つのオプションは、[[GnuPG#無人のパスフレーズ|GPG のループバックを強制]]することで、アプリケーションでパスフレーズを入力できるようにすることです。
+
もう一つのオプションは、[[GnuPG#無人のパスフレーズ|GPG のループバックを強制する]]ことで、アプリケーションでパスフレーズを入力できるようにすることです。
   
=== Renaming a keyring ===
+
=== キーリングの名前変更 ===
   
The display name for a keyring (i.e., the name that appears in Seahorse and from {{ic|file}}) can be changed by [https://ttboj.wordpress.com/2013/01/27/renaming-a-gnome-keyring-for-seahorse-the-passwords-and-keyrings-application/ changing the value of display-name in the unencrypted keyring file]. Keyrings will usually be stored in {{ic|~/.local/share/keyrings/}} with the ''.keyring'' file extension.
+
キーリングの表示名 (つまり、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'' という拡張子が付けられて保存されています。
   
  +
=== キーリングのパスワードをユーザのパスワードへ自動的に変更する ===
=== Automatically change keyring password with user password ===
 
   
  +
{{Note|これは、デフォルトのキーリングにしか影響しません。}}
{{Note|This only affects the default keyring.}}
 
  +
  +
{{ic|/etc/pam.d/passwd}} の末尾に {{ic|password optional pam_gnome_keyring.so}} を[[追加]]してください:
   
Add {{ic|password optional pam_gnome_keyring.so}} to the end of {{ic|/etc/pam.d/passwd}}.
 
 
{{hc|/etc/pam.d/passwd|2=
 
{{hc|/etc/pam.d/passwd|2=
  +
...
#%PAM-1.0
 
  +
password optional pam_gnome_keyring.so
  +
}}
   
  +
=== デスクトップ環境 (KDE、GNOME、XFCE など) の外で gnome-keyring-daemon を使う ===
#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'''
 
  +
{{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,_...)]]。}}
  +
  +
sway や i3、または以下のファイルを実行しないウィンドウマネージャを使用している場合:
  +
  +
* {{ic|/etc/xdg/autostart/gnome-keyring-*.desktop}}
  +
* {{ic|/etc/X11/xinit/xinitrc.d/50-systemd-user.sh}}
  +
  +
ウィンドウマネージャの起動時に以下のコマンドがウィンドウマネージャによって実行される必要があります。以下のコマンドを何らかの特定の順序で実行する必要はありません。
  +
  +
{{bc|dbus-update-activation-environment DISPLAY XAUTHORITY WAYLAND_DISPLAY}}
  +
  +
または
  +
  +
{{bc|dbus-update-activation-environment --all}}
  +
  +
このコマンドは、環境変数をウィンドウマネージャから dbus セッションに渡します。これがないと、DBus 経由で GUI プロンプトをトリガーできません。例えば、これは seahorse のパスワードプロンプトで必要です。
  +
  +
これが必要になるのは、グラフィカル環境が開始される前に dbus セッションが開始されるからです。したがって、dbus セッションは、あなたがいるグラフィカルな環境について知らないのです。誰か、または何かが、グラフィカル環境を記述する環境変数を dbus に渡すことで、グラフィカルな環境について dbus セッションに教えなければなりません。
  +
  +
{{bc|1=gnome-keyring-daemon --start --components=secrets}}
  +
  +
ログイン時に 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 を使用するプログラムも使えなくなってしまいます。
  +
  +
==== GNOME Keyring XDG Portal ====
  +
  +
{{Accuracy|{{ic|/usr/share}} に存在するファイルを変更しても、パッケージのアップグレード時に元に戻ってしまいます。}}
  +
  +
GNOME Keyring は、[[flatpak]] などによってサンドボックス化されたアプリケーションのために XDG Portal のバックエンドを公開しています。GNOME の外でこれを機能させるには、設定ファイル {{ic|/usr/share/xdg-desktop-portal/portals/gnome-keyring.portal}} の {{ic|UseIn}} キーにデスクトップ環境の名前を追加する必要があります。例えば、[[sway]] を追加するには:
  +
  +
{{hc|/usr/share/xdg-desktop-portal/portals/gnome-keyring.portal|2=
  +
[portal]
  +
DBusName=org.freedesktop.secrets
  +
Interfaces=org.freedesktop.impl.portal.Secret
  +
UseIn=gnome;sway
 
}}
 
}}
  +
  +
XDG Desktop Portal のバックエンドに関する詳細は [[XDG デスクトップ ポータル#バックエンド]] を参照してください。
   
 
== トラブルシューティング ==
 
== トラブルシューティング ==
171行目: 204行目:
 
=== パスワードが保存されない ===
 
=== パスワードが保存されない ===
   
ログイン毎回パスワードプロンプトが表示され、パスワードが保存されない場合は、デフォルトのキーリングを作成設定する必要があります。
+
ログインするたびにパスワードプロンプトが表示され、パスワードが保存されない場合は、デフォルトのキーリングを作成/設定する必要がある場合があります。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] を参照してください。
 
   
=== Resetting the keyring ===
+
=== キーリングのリセット ===
   
You will need to [[#Manage using GUI|change your login keyring password]] if you receive the following error message: "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}} ファイルを削除することもできます。これらのファイルを削除すると、保存されている全鍵が永久に削除されるので注意してください。これらの削除したら、一旦ログアウトし、ログインし直してください。
Alternatively, you can remove the {{ic|login.keyring}} and {{ic|user.keystore}} files from {{ic|~/.local/share/keyrings/}}. Be warned that this will permanently delete all saved keys. After removing the files, simply log out and log in again.
 
   
 
=== Unable to locate daemon control file ===
 
=== Unable to locate daemon control file ===
   
  +
ログイン後に以下のエラーが [[journal]] に表示される場合:
The following error may appear in the [[journal]] after logging in:
 
   
 
gkr-pam: unable to locate daemon control file
 
gkr-pam: unable to locate daemon control file
   
This message "can be safely ignored" if there are no other related issues [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|
 
source /etc/X11/xinit/xinitrc.d/50-systemd-user.sh
 
source /etc/X11/xinit/xinitrc.d/50-systemd-user.sh
 
}}
 
}}
  +
  +
=== ターミナルに "discover_other_daemon: 1" というメッセージが表示される ===
  +
  +
これは ''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}} [[ユーザーユニット]]を[[無効化]]することもできます。
   
 
== 参照 ==
 
== 参照 ==
  +
* [https://wiki.gnome.org/action/show/Projects/GnomeKeyring GNOME wiki]
 
  +
* https://help.gnome.org/users/seahorse/stable/
  +
* [https://wiki.gnome.org/action/show/Projects/GnomeKeyring GNOME Wiki ページ]
  +
  +
{{TranslationStatus|GNOME/Keyring|2024-02-25|801104}}

2024年2月25日 (日) 21:37時点における最新版

関連記事

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

セキュリティモデル

GNOME/Keyring API の動作に関連するセキュリティの問題 (CVE-2018-19358) が過去に報告されています。いかなるアプリケーションも、キーリングのロックが解除されていれば、任意のシークレットを簡単に読むことができてしまいます。さらに、ユーザーがログインしていれば、ログイン/デフォルトのコレクションのロックは解除されています。D-Bus の保護機構 (busconfig とポリシー XML エレメントを含む) はデフォルトで使用されておらず、いずれにせよ、これも簡単にバイパスできてしまいます。

GNOME/Keyring のセキュリティモデルによれば、信頼されないアプリケーションはユーザーのセッションバスソケットへのアクセスを許可されないであろうことから、GNOME プロジェクトはこの脆弱性レポートに同意していません

Flatpak によってサンドボックス化されているアプリケーションは、この影響を受けません。

インストール

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
ノート: greetd ログインマネージャを使用している場合、変更する必要のあるファイルは /etc/pam.d/login ではなく /etc/pam.d/greetd です。

SSH 鍵

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

バージョン 1:46 から、gnome-keyring-daemon ビルドでは SSH の機能がデフォルトで無効化されています。この機能は /usr/lib/gcr-ssh-agent (gcr-4 パッケージに含まれています) へと移動されています。gnome-keyring-daemon の SSH 実装は完全に削除されることが計画されています

gcr をセットアップする

やるべきことは:

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

使用する

以下を実行することで、実行中のエージェントにロードされている 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 -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
...
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 を使用するプログラムも使えなくなってしまいます。

GNOME Keyring XDG Portal

この記事またはセクションの正確性には問題があります。
理由: /usr/share に存在するファイルを変更しても、パッケージのアップグレード時に元に戻ってしまいます。 (議論: トーク:GNOME/Keyring#)

GNOME Keyring は、flatpak などによってサンドボックス化されたアプリケーションのために XDG Portal のバックエンドを公開しています。GNOME の外でこれを機能させるには、設定ファイル /usr/share/xdg-desktop-portal/portals/gnome-keyring.portalUseIn キーにデスクトップ環境の名前を追加する必要があります。例えば、sway を追加するには:

/usr/share/xdg-desktop-portal/portals/gnome-keyring.portal
[portal]
DBusName=org.freedesktop.secrets
Interfaces=org.freedesktop.impl.portal.Secret
UseIn=gnome;sway

XDG Desktop Portal のバックエンドに関する詳細は XDG デスクトップ ポータル#バックエンド を参照してください。

トラブルシューティング

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

ログインするたびにパスワードプロンプトが表示され、パスワードが保存されない場合は、デフォルトのキーリングを作成/設定する必要がある場合があります。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 の翻訳バージョンです。最後の翻訳日は 2024-02-25 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。