GNOME/Keyring

提供: ArchWiki
ナビゲーションに移動 検索に移動
この記事あるいはセクションは翻訳の途中です。
ノート: 翻訳へのご協力または英語版を参照してください。 (議論: トーク:GNOME/Keyring#)

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 に保存したパスワードを確認するためのシンプルなコマンドラインツール。
|| gnome-keyring-queryAUR

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 を使用している場合は、これで完了です。初期化が完了し、環境変数が自動的に設定されます。

--start ステップ

デスクトップ環境として GNOME、Unity、Mate、Cinnamon を使用していない場合、初期化は自動的に完了しません。これは、さまざまな方法を使用して修正できます。

シェル

~/.bash_profile~/.zshenv などに以下を追加します。

~/.bash_profile
if [ -n "$DESKTOP_SESSION" ];then
    eval $(gnome-keyring-daemon --start)
    export SSH_AUTH_SOCK
fi
~/.config/fish/config.fish
if test -n "$DESKTOP_SESSION"
    set -x (gnome-keyring-daemon --start | string split "=")
end

xinitrc を使う

xinitrc から gnome-keyring-daemon を起動:

~/.xinitrc
eval $(/usr/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh)
export SSH_AUTH_SOCK

Xfce のみ

Xfce の場合は、Xfce#SSH エージェント を確認。

XDG autostart

/etc/xdg/autostart/ から gnome-keyring-ssh.desktopgnome-keyring-pkcs11.desktopgnome-keyring-secrets.desktop~/.config/autostart/ にコピーし、各ファイルから OnlyShowIn=GNOME;Unity;MATE;Cinnamon; 行を削除してください。ただし、この方法では環境変数 SSH_AUTH_SOCK (および PAM のステップをスキップした場合のその他の変数) は設定されないことに注意してください。

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)。

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

別の 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.

Automatically change keyring password with user password

ノート: This only affects the default keyring.

Add password optional pam_gnome_keyring.so to the end of /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 を参照してください。

Resetting the keyring

You will need to 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".

Alternatively, you can remove the login.keyring and user.keystore files from ~/.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

The following error may appear in the journal after logging in:

gkr-pam: unable to locate daemon control file

This message "can be safely ignored" if there are no other related issues [3].

No such secret collection at path: /

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

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

参照