「GNOME/Keyring」の版間の差分
Kusanaginoturugi (トーク | 投稿記録) (→GNOME 以外でキーリングを使用する: 章タイトル修正。序文追加。表示順序入れ替え。) |
Kusanaginoturugi (トーク | 投稿記録) (→キーリングを使用する: 記事の差し替え) |
||
| 21行目: | 21行目: | ||
== キーリングを使用する == |
== キーリングを使用する == |
||
| + | |||
| + | [[PAM]] モジュール ''pam_gnome_keyring.so'' は、GNOME キーリングを部分的に初期化し、そのプロセスでデフォルトの ''login'' キーリングのロックを解除します。その後、初期化を完了して、環境変数を設定する {{ic|--start}} オプションを指定して ''gnome-keyring-daemon'' を呼び出す必要があります。 |
||
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 {{ic|--start}} option to complete initialisation and to set environment variables. |
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 {{ic|--start}} option to complete initialisation and to set environment variables. |
||
| − | === PAM |
+ | === PAM ステップ === |
{{Note|自動でロックを解除したい場合、ユーザーアカウントとキーリングに同一のパスワードを設定する必要があります。[[#Automatically change keyring password with user password]] を参照してください。}} |
{{Note|自動でロックを解除したい場合、ユーザーアカウントとキーリングに同一のパスワードを設定する必要があります。[[#Automatically change keyring password with user password]] を参照してください。}} |
||
| 51行目: | 53行目: | ||
GNOME、Unity、Cinnamon、MATE を使用している場合は、これで完了です。初期化が完了し、環境変数が自動的に設定されます。 |
GNOME、Unity、Cinnamon、MATE を使用している場合は、これで完了です。初期化が完了し、環境変数が自動的に設定されます。 |
||
| + | |||
| + | === --start ステップ === |
||
| + | |||
| + | デスクトップ環境として GNOME、Unity、Mate、Cinnamon を使用していない場合、初期化は自動的に完了しません。これは、さまざまな方法を使用して修正できます。 |
||
| + | |||
| + | ==== Shell ==== |
||
| + | |||
| + | Add the following to your {{ic|~/.bash_profile}}, {{ic|~/.zshenv}}, or similar: |
||
| + | |||
| + | {{hc|~/.bash_profile|2= |
||
| + | if [ -n "$DESKTOP_SESSION" ];then |
||
| + | eval $(gnome-keyring-daemon --start) |
||
| + | export SSH_AUTH_SOCK |
||
| + | fi |
||
| + | }} |
||
| + | |||
| + | {{hc|~/.config/fish/config.fish|2= |
||
| + | if test -n "$DESKTOP_SESSION" |
||
| + | set -x (gnome-keyring-daemon --start {{!}} string split "=") |
||
| + | end |
||
| + | }} |
||
===== xinitrc を使う ===== |
===== xinitrc を使う ===== |
||
| 63行目: | 86行目: | ||
Xfce の場合は、[[Xfce#SSH エージェント]] を確認。 |
Xfce の場合は、[[Xfce#SSH エージェント]] を確認。 |
||
| + | ==== Xfce only ==== |
||
| − | === ディスプレイマネージャを使わない === |
||
| + | See [[Xfce#SSH agents]] for use in Xfce. |
||
| − | ==== 自動ログイン ==== |
||
| − | 自動ログインを使っている場合、ログインキーリングに空のパスワードを設定することでキーリングマネージャを無効化することができます。 |
||
| − | {{Note|この場合はパスワードは暗号化されていない状態で保存されます。}} |
||
| − | ==== |
+ | ==== XDG autostart ==== |
| − | コンソールによるログインを使っている場合、[[PAM]] か [[xinitrc]] を使ってキーリングデーモンを起動することができます。PAM ではログイン時に自動的にキーリングのロックを解除することもできます。 |
||
| − | |||
| − | === ディスプレイマネージャを使う === |
||
| − | ディスプレイマネージャを使う場合、ほとんどの場合、何も設定しなくてもキーリングは動作します。以下のディスプレイマネージャはログイン時にキーリングのロックを自動的に解除します: |
||
| − | * [[GDM]] |
||
| − | * [[SLiM]] |
||
| − | * [[LightDM]] |
||
| − | * [[LXDM]] |
||
| − | {{Note|{{pkg|libgnome-keyring}} をインストールする必要があるかもしれません。}} |
||
| − | KDM については、[[KDM#KDM と Gnome-keyring]] を見て下さい。 |
||
| − | |||
| − | [[SDDM]] の場合、KDM のガイドラインに従ってください。ただし {{ic|/etc/pam.d/kde}} は {{ic|/etc/pam.d/sddm}} に変更してください。 |
||
| − | |||
| − | SSH などのターミナルから動作させるアプリケーションからキーリングを使えるようにするには、以下を {{ic|~/.bash_profile}} や {{ic|~/.zshenv}} に追加してください: |
||
| − | |||
| − | {{hc|~/.zshenv|<nowiki> |
||
| − | if [ -n "$DESKTOP_SESSION" ];then |
||
| − | eval $(gnome-keyring-daemon --start) |
||
| − | export SSH_AUTH_SOCK |
||
| − | fi</nowiki>}} |
||
| + | Copy {{ic|gnome-keyring-ssh.desktop}}, {{ic|gnome-keyring-pkcs11.desktop}}, and {{ic|gnome-keyring-secrets.desktop}} from {{ic|/etc/xdg/autostart/}} to {{ic|~/.config/autostart/}} and delete the {{ic|1=OnlyShowIn=GNOME;Unity;MATE;Cinnamon;}} lines from each file. Note however that this will '''not''' set {{ic|SSH_AUTH_SOCK}} (and the other variables if the PAM step was skipped) environment variable. |
||
| − | {{Note|1=GNOME Keyring デーモンは {{ic|GNOME_KEYRING_PID}} をもはや使いません。[https://mail.gnome.org/archives/commits-list/2014-March/msg03864.html] を参照。}} |
||
== SSH 鍵 == |
== SSH 鍵 == |
||
2022年4月5日 (火) 10:34時点における版
GNOME Keyring は「シークレット・パスワード・鍵・証明書を保存し、それらをアプリケーションから利用できるようにする GNOME のコンポーネントのコレクション」です。
目次
インストール
GNOME を使用している場合、gnome-keyring は gnome グループの一つとして自動的にインストールされます。GNOME を使っていない場合は、公式リポジトリから gnome-keyring をインストールしてください。libsecret もインストールして、他のアプリケーションにキーリングへのアクセスを許可する必要があります。libgnome-keyring は非推奨になりました(そして、libsecret にとって代わられ)が、それでも特定のアプリケーションで必要になる場合があります。
GNOME キーリングに関連する追加のユーティリティは次の通りです:
- secret-tool — コマンドラインから GNOME Keyring (や DBus Secret Service API が実装された他のサービス) にアクセス。
- lssecret — List all secret items using libsecret (e.g. GNOME Keyring).
- 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 を呼び出す必要があります。
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 ステップ
ディスプレイマネージャを使用する場合、ほとんどのケースでキーリングはそのまま機能します。GDM、LightDM、LXDM、SDDM はすでに必要な 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 を使用していない場合、初期化は自動的に完了しません。これは、さまざまな方法を使用して修正できます。
Shell
Add the following to your ~/.bash_profile, ~/.zshenv, or similar:
~/.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#SSH エージェント を確認。
Xfce only
See Xfce#SSH agents for use in Xfce.
XDG autostart
Copy gnome-keyring-ssh.desktop, gnome-keyring-pkcs11.desktop, and gnome-keyring-secrets.desktop from /etc/xdg/autostart/ to ~/.config/autostart/ and delete the OnlyShowIn=GNOME;Unity;MATE;Cinnamon; lines from each file. Note however that this will not set SSH_AUTH_SOCK (and the other variables if the PAM step was skipped) environment variable.
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 エージェントを使いたい場合 (例: 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