KDE Wallet

提供: ArchWiki
2022年7月18日 (月) 11:14時点におけるAshMyzk (トーク | 投稿記録)による版 (同期)
ナビゲーションに移動 検索に移動

KDE Wallet Manager は、KDE Plasma システムでパスワードを管理するためのツールです。KDE ウォレットサブシステムを使うことで秘密を守ることだけでなく、KDE ウォレットと連動する全てのアプリケーションのパスワードを管理することができます。

ログイン時に KDE ウォレットを自動的にアンロック

ログイン時に KDE ウォレットを自動的にアンロックするには、PAM 互換モジュールの kwallet-pamインストールしてください。また、KDE ウォレットパスワードは現在のユーザーのパスワードと一致していなければなりません。

ノート:
  • kwallet-pamGnuPG 鍵とは互換性がありません。KDE ウォレットは標準的な blowfish 暗号を使わなければなりません。
  • 自動ログインを使うときは、自動ログインのメソッドがパスワードを保存している場合に限りウォレットをアンロックできます。例えば、pam_autologin は可能です。
  • ログインに指紋を使用する場合、ウォレットはアンロックできません。
  • ウォレットの名前は kdewallet (デフォルト名)でなければなりません。これは他のウォレットをアンロックしません。
  • KDE を使用している場合、ウォレットが使用後(WiFi のパスフレーズのアンロックなど)に閉じられないようにするために、KDE ウォレット設定で 最後のアプリケーションが使い終わったときに閉じる を無効化する必要があるかもしれません。
  • まず先に、保存されている全てのエントリを削除して、デフォルトで作成されたウォレットを削除する必要があるかもしれません。
  • kwallet Migration Assistant がログイン後に毎回パスワードを尋ねてくる場合、~/.kde4/share/apps/kwallet フォルダを削除するか名前を変更してください。

任意で、ウォレットの管理ツールの kwalletmanagerインストールしてください。このツールは、kcm-module で提供されない設定と blowfish 暗号のある KDE ウォレットを作成するのに使用できます。

ヒント: あるいは、KWalletManager を使用して、空の Kwallet パスワードを設定することで、パスワード無しでウォレットのアンロックを可能にできます。パスワードを変更.. の両方の入力欄を空欄にしてください。しかし、これによりユーザのウォレットに対して望まない(読み込み/書き込み)アクセスを招く恐れがあります。ウォレットに対する望まないアクセスを防ぐために アクセス管理アプリケーションがウォレットにアクセスするときに通知する を有効化することを強くおすすめします。

PAM の設定

以下の行は、対応するそれぞれのセクションになければなりません:

auth            optional        pam_kwallet5.so
session         optional        pam_kwallet5.so auto_start

状況に合わせて PAM 設定ファイルを編集してください:

  • SDDM の場合、/etc/pam.d/sddm に上記の行がすでに存在するため、編集する必要はありません。
  • GDM の場合、/etc/pam.d/gdm-password を適宜編集してください。
  • greetd の場合、/etc/pam.d/greetd を適宜編集してください。
  • LightDM の場合、/etc/pam.d/lightdm/etc/pam.d/lightdm-autologin ファイルを編集してください:
  • tty ログイン(ディスプレイマネージャなし)でアンロックするには、/etc/pam.d/login を適宜編集してください。force_run パラメータを指定する必要があります。
/etc/pam.d/login
auth            optional        pam_kwallet5.so
session         optional        pam_kwallet5.so auto_start force_run
/etc/pam.d/lightdm
#%PAM-1.0
auth            include         system-login
auth            optional        pam_kwallet5.so

account         include         system-login

password        include         system-login

session         include         system-login
session         optional        pam_kwallet5.so auto_start
/etc/pam.d/lightdm-autologin
#%PAM-1.0
auth        required    pam_env.so
auth        required    pam_faillock.so preauth
auth        required    pam_shells.so
auth        required    pam_nologin.so
auth        [success=1 default=ignore]  pam_succeed_if.so user ingroup autologin
auth        required    pam_unix.so
auth        required    pam_permit.so
auth        optional    pam_kwallet5.so

account     include     system-local-login

password    include     system-local-login

session     include     system-local-login
session     optional    pam_kwallet5.so auto_start
/etc/pam.d/greetd
#%PAM-1.0

auth       required     pam_securetty.so
auth       requisite    pam_nologin.so
auth       include      system-local-login
auth       optional     pam_kwallet5.so
account    include      system-local-login
session    include      system-local-login
session    optional     pam_kwallet5.so auto_start force_run

KDE ウォレットを使って ssh 鍵のパスフレーズを保存

ノート: SSH エージェントが実行されている必要があります。

ksshaskpass パッケージをインストールしてください。

自動起動 .desktop ファイル作成してください:

~/.config/autostart/ssh-add.desktop
[Desktop Entry]
Exec=ssh-add -q
Name=ssh-add
Type=Application
ヒント: デフォルトでは、ssh-add(1) はデフォルト鍵 ~/.ssh/id_rsa しか追加しません。key1key2key3 という名前の、異なる SSH 鍵を持っていると仮定すると、ssh-add への引数としてそれらを渡すことでログイン時に自動的にそれらを追加できます。例:
~/.config/autostart/ssh-add.desktop
[Desktop Entry]
Exec=ssh-add -q ~/.ssh/key1 ~/.ssh/key2 ~/.ssh/key3
Name=ssh-add
Type=Application

グロビングなどのシェルの機能を使うには、シェルを起動して ssh-add コマンドを実行するように Exec= の行を変更してください。例えば、Zsh の拡張グロビング機能を使って、ファイル名が id で始まる全ての秘密鍵を ssh-add に追加するには:

~/.config/autostart/ssh-add.desktop
[Desktop Entry]
Exec=zsh --extendedglob -c 'ssh-add -q ~/.ssh/id^*.pub < /dev/null'
Name=ssh-add
Type=Application
X-KDE-AutostartScript=true

また、SSH_ASKPASS 環境変数ksshaskpass に設定する必要があります。ログイン時にその環境変数を自動的に設定するには、以下の systemd 環境変数を作成してください:

~/.config/environment.d/ssh_askpass.conf
SSH_ASKPASS='/usr/bin/ksshaskpass'

パスワードを尋ねてきて、SSH 鍵をアンロックします。kwallet のパスワードを入力すれば、再起動時に SSH 鍵がアンロックされるはずです。

新しい鍵を追加して kwallet でパスワードを保存するには、以下のコマンドを使ってください。

$ ssh-add /path/to/new/key </dev/null

そして、上で説明したように ~/.config/autostart/ssh-add.desktop 内の鍵のリストにその鍵を追加して、kwallet のパスワード入力時にアンロックされるようにしてください。

and append the key to the list of keys in ~/.config/autostart/ssh-add.desktop as explained above to have it unlocked upon providing the kwallet password.

KDE ウォレットを使って Git の資格情報を保存

Git は資格情報ヘルパーに資格情報の処理を委託できます。ksshaskpass を資格情報ヘルパーとして使うには、HTTP/HTTPS と SMTP のパスワードは KDE ウォレットに安全に保存できます。

ksshaskpass パッケージをインストールしてください。

GIT_ASKPASS 環境変数で Git を設定してください:

~/.config/environment.d/git_askpass.conf
GIT_ASKPASS='/usr/bin/ksshaskpass'
ヒント: SSH_ASKPASS 環境変数がksshaskpass に設定されている場合、GIT_ASKPASS を設定する必要はありません。

代替や詳細は gitcredentials(7) を見てください。

Chrome と Chromium で KDE ウォレットを使う

Chrome/Chromium/Opera には組み込みのウォレット統合機能があります。それを有効化するには、--password-store=kwallet5--password-store=detect を引数として渡して Chromium を実行してください。この変更を永続化させるには、Chromium#フラグを永続的に設定 を見てください。(CHROMIUM_USER_FLAGS を設定してもうまく行きません。)

ターミナルからパスワードをクエリする

プレーンなテキストファイルにパスワードを保存する代わりに、kwallet-query を使って手動で新しいエントリをウォレットに追加したり、取得したりできます。

例えば、Podman で Docker Hub レジストリにログインしたい場合、以下のコマンドを使ってログインできます(Podman は --password-stdin フラグで標準入力からのパスワード入力を受け付けます):

$ kwallet-query -r folder_entry wallet_name -f folder_name | podman login docker.io -u dockerhub_username --password-stdin

この方法では、パスワードはテキストファイルに保存されず、ターミナルの履歴ファイルにも残りません。

ウインドウマネージャで KWallet を自動的にアンロックする

ログインパスワードで保護された KWallet をアンロックするには、PAM の設定に加えて以下をウインドウマネージャの設定ファイルに追加する必要があります:

exec --no-startup-id /usr/lib/pam_kwallet_init

KWallet を無効化する

KWallet を永久に無効化したい場合:

~/.config/kwalletrc
[Wallet]
Enabled=false

参照