「GNOME/Keyring」の版間の差分
Kusanaginoturugi (トーク | 投稿記録) 細 (see also の表記を他に合せた(その他から参照に変更)) タグ: visualeditor-switched |
Kusanaginoturugi (トーク | 投稿記録) 細 (i3のエラー対策を転記) |
||
71行目: | 71行目: | ||
Xfce で使う場合 [[Xfce#SSH_エージェント|SSH エージェント]]を参照。 |
Xfce で使う場合 [[Xfce#SSH_エージェント|SSH エージェント]]を参照。 |
||
+ | |||
+ | [[i3]] を使用してsshでパスワードプロンプトが表示されず、次のエラーが表示される場合: |
||
+ | |||
+ | sign_and_send_pubkey: signing failed: agent refused operation |
||
+ | Permission denied (publickey). |
||
+ | |||
+ | .xinitrc を使って DISPLAY 環境変数を dbus-daemon に追加する必要があります。 |
||
+ | |||
+ | {{hc|~/.xinitrc|<nowiki> |
||
+ | dbus-update-activation-environment --systemd DISPLAY |
||
+ | eval $(/usr/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh) |
||
+ | export SSH_AUTH_SOCK |
||
+ | |||
+ | ... |
||
+ | exec i3 |
||
+ | </nowiki>}} |
||
+ | |||
+ | {{note|If you use a different location for {{ic|~/.Xauthority}} ({{ic|XAUTHORITY}}) then you will have to also include this environment variable in the aforementioned {{ic|dbus-update-activation-environment}} command.}} |
||
=== ディスプレイマネージャを使う === |
=== ディスプレイマネージャを使う === |
2019年3月1日 (金) 19:02時点における版
GNOME Keyring はパスワード・鍵・証明書などを保存してアプリケーションから利用できるようにする GNOME のコンポーネントです。
インストール
GNOME を使用している場合、gnome-keyring は gnome グループの一つとして自動的にインストールされます。GNOME を使っていない場合は、公式リポジトリから gnome-keyring をインストールしてください。
便利なユーティリティ:
- secret-tool — コマンドラインから GNOME Keyring (や DBus Secret Service API が実装された他のサービス) にアクセス。
- gnome-keyring-query — GNOME Keyring に保存したパスワードを確認するためのシンプルなコマンドラインツール。
- http://www.gentoo-wiki.info/HOWTO_Use_gnome-keyring_to_store_SSH_passphrases || 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 を使う
/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 から gnome-keyring-daemon を起動:
~/.xinitrc
eval $(/usr/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh) export SSH_AUTH_SOCK
スケルトンの .xinitrc
では D-Bus セッションが起動します。詳しくは FS#13986 を参照。
キーリングからの情報の取得に問題が発生する場合、問題の環境で DBUS_SESSION_BUS_ADDRESS
がエクスポートされていることを確認してください (DBUS_SESSION_BUS_PID
はエクスポートされません)。
Xfce で使う場合 SSH エージェントを参照。
i3 を使用してsshでパスワードプロンプトが表示されず、次のエラーが表示される場合:
sign_and_send_pubkey: signing failed: agent refused operation Permission denied (publickey).
.xinitrc を使って DISPLAY 環境変数を dbus-daemon に追加する必要があります。
~/.xinitrc
dbus-update-activation-environment --systemd DISPLAY eval $(/usr/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh) export SSH_AUTH_SOCK ... exec i3
ディスプレイマネージャを使う
ディスプレイマネージャを使う場合、ほとんどの場合、何も設定しなくてもキーリングは動作します。以下のディスプレイマネージャはログイン時にキーリングのロックを自動的に解除します:
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
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 エージェントを使いたい場合 (例: 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