「GNOME/Keyring」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(→‎SSH 鍵: add article.)
(序文を変更)
3行目: 3行目:
 
[[Category:GNOME]]
 
[[Category:GNOME]]
 
[[en:GNOME/Keyring]]
 
[[en: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}} をインストールしてください。
 
GNOME を使用している場合、{{Pkg|gnome-keyring}} は {{grp|gnome}} グループの一つとして自動的にインストールされます。GNOME を使っていない場合は、[[公式リポジトリ]]から {{Pkg|gnome-keyring}} をインストールしてください。

2022年4月4日 (月) 14:10時点における版

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

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

インストール

GNOME を使用している場合、gnome-keyringgnome グループの一つとして自動的にインストールされます。GNOME を使っていない場合は、公式リポジトリから gnome-keyring をインストールしてください。

便利なユーティリティ:

  • secret-tool — コマンドラインから GNOME Keyring (や DBus Secret Service API が実装された他のサービス) にアクセス。
https://wiki.gnome.org/Projects/Libsecret || libsecret
  • gnome-keyring-query — GNOME Keyring に保存したパスワードを確認するためのシンプルなコマンドラインツール。
|| gnome-keyring-queryAUR
  • gkeyring — コマンドラインからパスワードを確認する。Git バージョンではアイテムの名前や id を知らなくても全てのパスワードを確認可能。
https://github.com/kparal/gkeyring || gkeyringAUR, gkeyring-gitAUR

GUI で管理

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

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

GNOME 以外でキーリングを使用する

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

自動ログイン

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

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

コンソールログイン

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

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 エージェント を確認。

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

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

ノート: 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

参照