「GNOME/Keyring」の版間の差分
Kusanaginoturugi (トーク | 投稿記録) (→アプリケーションとの統合: 記事の差し替え) |
Kusanaginoturugi (トーク | 投稿記録) (→GNOME Keyring と Git: 記事の修正と差し替え) |
||
128行目: | 128行目: | ||
上記のコマンドで、実行中のインスタンスが終了して、新しい gnome-keyring-daemon が起動します。 |
上記のコマンドで、実行中のインスタンスが終了して、新しい gnome-keyring-daemon が起動します。 |
||
− | === |
+ | === Git 統合 === |
− | HTTPS でプッシュするときに [[Git]] と GNOME Keyring を組み合わせると便利です。 |
||
+ | The GNOME keyring is useful in conjunction with [[Git]] when you are pushing over HTTPS. The {{Pkg|libsecret}} package [[#Installation|needs to be installed for this functionality to be available]]. |
||
− | まず[[公式リポジトリ]]から {{pkg|libgnome-keyring}} パッケージをインストールしてください。 |
||
+ | |||
+ | 'libsecret' ヘルパーを使うように Git を設定: |
||
− | そしてヘルパーをコンパイルします: |
||
− | $ cd /usr/share/git/credential/gnome-keyring |
||
− | # make |
||
− | ヘルパーを使うように Git を設定: |
||
$ git config --global credential.helper /usr/lib/git-core/git-credential-gnome-keyring |
$ git config --global credential.helper /usr/lib/git-core/git-credential-gnome-keyring |
||
+ | |||
これで ''git push'' を実行したときに、キーリングのロックが解除されていなかった場合、解除するように要求されます。 |
これで ''git push'' を実行したときに、キーリングのロックが解除されていなかった場合、解除するように要求されます。 |
||
2022年4月5日 (火) 10:59時点における版
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 を呼び出す必要があります。
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 を使用していない場合、初期化は自動的に完了しません。これは、さまざまな方法を使用して修正できます。
シェル
~/.bash_profile
、~/.zshenv
などに以下を追加します。
~/.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 の場合は、Xfce#SSH エージェント を確認。
XDG autostart
/etc/xdg/autostart/
から gnome-keyring-ssh.desktop
、gnome-keyring-pkcs11.desktop
、gnome-keyring-secrets.desktop
を ~/.config/autostart/
にコピーし、各ファイルから OnlyShowIn=GNOME;Unity;MATE;Cinnamon;
行を削除してください。ただし、この方法では環境変数 SSH_AUTH_SOCK
(および PAM のステップをスキップした場合のその他の変数) は設定されないことに注意してください。
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 が起動します。
Git 統合
The GNOME keyring is useful in conjunction with Git when you are pushing over HTTPS. The libsecret package needs to be installed for this functionality to be available.
'libsecret' ヘルパーを使うように 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