「GNOME/Keyring」の版間の差分
Kusanaginoturugi (トーク | 投稿記録) →PAM を使う: add Note and Tip. |
Kusanaginoturugi (トーク | 投稿記録) →PAM を使う: add article. |
||
| 35行目: | 35行目: | ||
* Skipping the PAM step works, because the [[#--start step|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 [https://wiki.gnome.org/Projects/GnomeKeyring/RunningDaemon]. |
* Skipping the PAM step works, because the [[#--start step|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 [https://wiki.gnome.org/Projects/GnomeKeyring/RunningDaemon]. |
||
}} |
}} |
||
When using a display manager, the keyring works out of the box for most cases. [[GDM]], [[LightDM]], [[LXDM]], and [[SDDM]] already have the necessary PAM configuration. For a display manager that does not automatically unlock the keyring edit the appropriate file instead of {{ic|/etc/pam.d/login}} as mentioned below. |
|||
{{ic|/etc/pam.d/login}} から gnome-keyring-daemon を起動: |
{{ic|/etc/pam.d/login}} から gnome-keyring-daemon を起動: |
||
2022年4月4日 (月) 12:08時点における版
GNOME Keyring はパスワード・鍵・証明書などを保存してアプリケーションから利用できるようにする GNOME のコンポーネントです。
インストール
GNOME を使用している場合、gnome-keyring は gnome グループの一つとして自動的にインストールされます。GNOME を使っていない場合は、公式リポジトリから gnome-keyring をインストールしてください。
便利なユーティリティ:
- secret-tool — コマンドラインから GNOME Keyring (や DBus Secret Service API が実装された他のサービス) にアクセス。
- gnome-keyring-query — GNOME Keyring に保存したパスワードを確認するためのシンプルなコマンドラインツール。
- || gnome-keyring-queryAUR
- gkeyring — コマンドラインからパスワードを確認する。Git バージョンではアイテムの名前や id を知らなくても全てのパスワードを確認可能。
GUI で管理
GNOME Keyring は Seahorse を使って管理することができます。公式リポジトリから seahorse パッケージをインストールしてください。
GNOME Keyring のパスワードを空にしたり変更することが可能です。Seahorse を開いて、ドロップダウンメニューの "View" から "By Keyring" を選択してください。Passwords タブを開いて、"Passwords: login" を右クリックして "Change password" を選択してください。旧パスワードを入力してから新しいパスワードを入力します。暗号化されていないストレージを使用しているという警告が表示されるので "Use Unsafe Storage" を押して下さい。
GNOME 以外でキーリングを使用する
ディスプレイマネージャを使わない
自動ログイン
自動ログインを使っている場合、ログインキーリングに空のパスワードを設定することでキーリングマネージャを無効化することができます。
コンソールログイン
コンソールによるログインを使っている場合、PAM か xinitrc を使ってキーリングデーモンを起動することができます。PAM ではログイン時に自動的にキーリングのロックを解除することもできます。
PAM を使う
- 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].
When using a display manager, the keyring works out of the box for most cases. GDM, LightDM, LXDM, and SDDM already have the necessary PAM configuration. For a display manager that does not automatically unlock the keyring edit the appropriate file instead of /etc/pam.d/login as mentioned below.
/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
次に、/etc/pam.d/passwd の最後に password optional pam_gnome_keyring.so を追加してください。
/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
- 自動でロックを解除したい場合、ユーザーアカウントとキーリングに同一のパスワードを設定する必要があります。
- 上記の設定だけでは不十分で
~/.xinitrcに以下のコードを記述して環境変数をエクスポートする必要があります。
xinitrc を使う
xinitrc から gnome-keyring-daemon を起動:
~/.xinitrc
eval $(/usr/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh) export SSH_AUTH_SOCK
Xfce の場合は、Xfce#SSH エージェント を確認。
ディスプレイマネージャを使う
ディスプレイマネージャを使う場合、ほとんどの場合、何も設定しなくてもキーリングは動作します。以下のディスプレイマネージャはログイン時にキーリングのロックを自動的に解除します:
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_PID をもはや使いません。[3] を参照。SSH 鍵
SSH 鍵を追加するには:
$ ssh-add ~/.ssh/id_dsa Enter passphrase for /home/mith/.ssh/id_dsa:
自動でロードされている鍵を確認するには:
$ ssh-add -L
全ての鍵を無効化するには:
$ ssh-add -D
サーバーに接続するときに、鍵が使われてパスフレーズの入力を求めるダイアログがポップアップするようになります。ログイン時に自動的にロックを解除するオプションもあります。このオプションにチェックを入れている場合、もうパスフレーズを入力する必要はなくなります。
もしくは、キーリングにパスフレーズを永続的に保存したい場合、seahorse パッケージの seahorse-ssh-askpass を使います:
/usr/lib/seahorse/seahorse-ssh-askpass my_key
~/.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.desktop と gnome-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