GNOME/Keyring

提供: ArchWiki
2022年4月5日 (火) 10:28時点におけるKusanaginoturugi (トーク | 投稿記録)による版 (→‎GNOME 以外でキーリングを使用する: 章タイトル修正。序文追加。表示順序入れ替え。)
ナビゲーションに移動 検索に移動
この記事あるいはセクションは翻訳の途中です。
ノート: 翻訳へのご協力または英語版を参照してください。 (議論: トーク: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" を押して下さい。

キーリングを使用する

The PAM module pam_gnome_keyring.so initialises GNOME Keyring partially, unlocking the default login keyring in the process. It should be followed by a call to gnome-keyring-daemon with the --start option to complete initialisation and to set environment variables.

PAM を使う

ノート: 自動でロックを解除したい場合、ユーザーアカウントとキーリングに同一のパスワードを設定する必要があります。#Automatically change keyring password with user password を参照してください。
ヒント:
  • To use automatic unlocking with automatic login, you can set a blank password for the default keyring. Note that the contents of the keyring are stored unencrypted in this case.
  • Alternatively, if using GDM and LUKS, GDM can unlock your keyring if it matches your LUKS password. For this to work, you need to use the systemd init in your mkinitcpio.conf as well as the appropriate kernel parameters. See [1] for more details.
  • Skipping the PAM step works, because the next step will initialise the daemon when one is not running already; however, the default keyring is not unlocked in this case. More details are available at [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 を使用している場合は、これで完了です。初期化が完了し、環境変数が自動的に設定されます。

xinitrc を使う

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

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

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

ディスプレイマネージャを使わない

自動ログイン

自動ログインを使っている場合、ログインキーリングに空のパスワードを設定することでキーリングマネージャを無効化することができます。

ノート: この場合はパスワードは暗号化されていない状態で保存されます。

コンソールログイン

コンソールによるログインを使っている場合、PAMxinitrc を使ってキーリングデーモンを起動することができます。PAM ではログイン時に自動的にキーリングのロックを解除することもできます。

ディスプレイマネージャを使う

ディスプレイマネージャを使う場合、ほとんどの場合、何も設定しなくてもキーリングは動作します。以下のディスプレイマネージャはログイン時にキーリングのロックを自動的に解除します:

ノート: libgnome-keyring をインストールする必要があるかもしれません。

KDM については、KDM#KDM と Gnome-keyring を見て下さい。

SDDM の場合、KDM のガイドラインに従ってください。ただし /etc/pam.d/kde/etc/pam.d/sddm に変更してください。

SSH などのターミナルから動作させるアプリケーションからキーリングを使えるようにするには、以下を ~/.bash_profile~/.zshenv に追加してください:

~/.zshenv
if [ -n "$DESKTOP_SESSION" ];then
    eval $(gnome-keyring-daemon --start)
    export SSH_AUTH_SOCK
fi
ノート: GNOME Keyring デーモンは GNOME_KEYRING_PID をもはや使いません。[3] を参照。

SSH 鍵

gnome-keyring-daemon with the ssh component will start an SSH agent and automatically load all the keys in ~/.ssh/ that have corresponding .pub files. There is no way to remove these keys from the agent.

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

$ 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 が起動します。

GNOME Keyring と Git

HTTPS でプッシュするときに Git と GNOME Keyring を組み合わせると便利です。

まず公式リポジトリから libgnome-keyring パッケージをインストールしてください。

そしてヘルパーをコンパイルします:

$ cd /usr/share/git/credential/gnome-keyring
# make

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

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

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

トラブルシューティング

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

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

seahorse パッケージをインストールして、システム設定から "パスワードと秘密鍵" を開いて View > By Keyring を選択してください。左カラムにキーリングが存在しない場合 (鍵のアイコン)、File > New > Password Keyring とたどって名前を付けて下さい。パスワードの入力を求められます。パスワードを入力しないと自動的にパスワード解除されるようになります (自動ログインを使っている場合も)、ただしパスワードは安全に保存されません。最後に、作成したキーリングを右クリックして "Set as default" を選択してください。

キーリングデーモンの SSH と Secrets コンポーネントの起動

ディスプレイマネージャや上に書かれている PAM で GNOME Keyring を起動していて、デスクトップに GNOME や Unity、MATE を使っていない場合、SSH と Secrets コンポーネントが自動的に起動しない場合があります。/etc/xdg/autostart/ にあるデスクトップファイル gnome-keyring-ssh.desktopgnome-keyring-secrets.desktop~/.config/autostart/ にコピーして OnlyShowIn という行を削除すれば問題は解決します。

$ cp /etc/xdg/autostart/{gnome-keyring-secrets.desktop,gnome-keyring-ssh.desktop} ~/.config/autostart/
$ sed -i '/^OnlyShowIn.*$/d' ~/.config/autostart/gnome-keyring-secrets.desktop
$ sed -i '/^OnlyShowIn.*$/d' ~/.config/autostart/gnome-keyring-ssh.desktop

参照