GNOME/Keyring

提供: ArchWiki
ナビゲーションに移動 検索に移動

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

インストール

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

GNOME キーリングに関連する追加のユーティリティは次の通りです:

  • secret-tool — コマンドラインから GNOME Keyring (や DBus Secret Service API が実装された他のサービス) にアクセス。
https://wiki.gnome.org/Projects/Libsecret || libsecret
  • lssecret — List all secret items using libsecret (e.g. GNOME Keyring).
https://gitlab.com/GrantMoyer/lssecret || lssecret-gitAUR
  • gnome-keyring-query — GNOME Keyring に保存したパスワードを確認するためのシンプルなコマンドラインツール。
https://gentoo-wiki.info/HOWTO_Use_gnome-keyring_to_store_SSH_passphrases (archived) || gnome-keyring-queryAUR
ノート: gnome-keyring-query only requires libgnome-keyring as a build dependency.

GUI で管理

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

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

キーリングを使用する

PAM モジュール pam_gnome_keyring.so は、GNOME キーリングを部分的に初期化し、そのプロセスでデフォルトの login キーリングのロックを解除します。その後、初期化を完了して、環境変数を設定する --start オプションを指定して gnome-keyring-daemon を呼び出す必要があります。

PAM ステップ

ノート: 自動ログインせずに、自動でロックを解除したい場合、ユーザーアカウントとキーリングに同一のパスワードを設定する必要があります。#Automatically change keyring password with user password を参照してください。
ヒント:
  • 自動ログインで自動ロック解除を使用するには、デフォルトのキーホルダーに空白のパスワードを設定します。この場合、キーリングの内容は暗号化されずに保存されることに注意してください。
  • あるいは、GDM と LUKS を使っている場合、GDM は LUKS のパスワードと一致すればキーリングをロック解除することができます。これを動かすには、適切なカーネルパラメータと同様に、mkinitcpio.conf で systemd init を使う必要があります。詳しくは [1] を参照してください。
  • PAM ステップは省略しても動きます。これは、デーモンがまだ実行されていないときに次のステップでデーモンが初期化されるためです。ただし、この場合、デフォルトのキーリングはロック解除されません。詳細については、次のURLをご覧ください [2]

ディスプレイマネージャを使用する場合、ほとんどのケースでキーリングはそのまま機能します。GDMLightDMLXDMSDDM はすでに必要な PAM の設定があります。キーリングのロックを自動的に解除しないディスプレイマネージャの場合は、以下のような /etc/pam.d/login の代わりに適切なファイルを編集してください。

/etc/pam.d/login から gnome-keyring-daemon を起動:

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

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

SSH 鍵

ssh コンポーネントを含む gnome-keyring-daemon は、SSH エージェントを起動し、~/.ssh/ にある対応する .pub ファイルを持つすべての鍵を自動的にロードします。これらの鍵をエージェントから削除する方法はありません。

すべてのロードされている鍵を確認するには:

$ ssh-add -L

サーバーに接続するときに、鍵が使われてパスフレーズの入力を求めるダイアログがポップアップするようになります。ログイン時に自動的にロックを解除するオプションもあります。このオプションにチェックを入れている場合、もうパスフレーズを入力する必要はなくなります。

もしくは、キーリングにパスフレーズを永続的に保存したい場合、seahorse パッケージの seahorse-ssh-askpass を使います:

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

SSH 鍵を追加するには:

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

To disable all manually added keys:

$ ssh-add -D

Enable the keyring ssh component

The default systemd user service shipped with the keyring does not include the ssh component. ssh must be added to the --components option of the gnome-keyring-daemon command in the ExecStart line of the unit file.

See Systemd#Editing provided units for how to edit the keyring's systemd unit file.

You must also enable the gcr-ssh-agent.service user unit.

キーリングデーモンの無効化

別の SSH エージェントを使いたい場合 (例: ssh-agent)、GNOME Keyring デーモンの SSH コンポーネントを無効化する必要があります:

# ln -sf /dev/null /etc/xdg/autostart/gnome-keyring-ssh.desktop

ログアウトすることで変更が適用されます。

ヒントとテクニック

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

パスフレーズの消去

$ gnome-keyring-daemon -r -d

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

Git 統合

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

libsecret ヘルパーを使うように Git を設定:

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

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

GnuPG 統合

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

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

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

Renaming a keyring

The display name for a keyring (i.e., the name that appears in Seahorse and from file) can be changed by changing the value of display-name in the unencrypted keyring file. Keyrings will usually be stored in ~/.local/share/keyrings/ with the .keyring file extension.

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

ノート: これはデフォルトのキーリングにのみ影響します。

password optional pam_gnome_keyring.so/etc/pam.d/passwd の末尾に追加します。

/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

トラブルシューティング

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

ログイン時に毎回パスワードプロンプトが表示され、パスワードが保存されない場合は、デフォルトのキーリングを作成・設定する必要があります。

Seahorse を使用してこれを行うには、GNOME ヘルプの 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.keyringuser.keystore ファイルを削除することもできます。この操作を行うと、保存されているすべての鍵が永久に削除されますのでご注意ください。ファイルを削除した後、ログアウトして再度ログインしてください。

デーモンコントロールファイルが見つからない

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

gkr-pam: unable to locate daemon control file

このメッセージは、他に関連する問題がなければ、「無視しても大丈夫」です[3]

No such secret collection at path: /

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

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

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

これは gnome-keyring-deamon が 2 回目に起動されたことが原因です。systemd サービスはデーモンと一緒に提供されるため、別の方法で開始する必要はありません。そのため、.zshenv.bash_profile.xinitrcconfig.fish などから開始コマンドを必ず削除してください。または、gnome-keyring-daemon.service および gnome-keyring-daemon.socket ユーザーユニット無効化することもできます。

参照

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