KDE Wallet (简体中文)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
翻译状态:本文是 KDE Wallet翻译。上次翻译日期:2019-4-11。如果英文版本有所更改,则您可以帮助同步翻译。

KDE Wallet Manager 是一个用于管理 KDE Plasma 上的密码的工具。KWallet子系统提供了访问和管理兼容KWallet的应用所保存的密码的功能,同时你也可以用它来保存你自己的密码。

在登录时自动解锁 Kwallet

注意:
  • kwallet-pamGnuPG keys 不兼容,所以 KDE Wallet 必须使用 blowfish 加密方式。
  • 所选择的 KWallet 密码必须与当前 用户 的密码相同。
  • KWallet 在账户使用自动登录的时候不会自动解锁。
  • 要自动解锁的 wallet 必须要命名为 kdewallet (这是默认的名字)。任何其他名字的 wallet 都不会自动解锁。
  • 如果桌面环境用的是 KDE, 建议关闭 KDE Wallet settings 里的 Close when last application stops using it 选项来防止 wallet 在每次被使用(比如获取WiFi密码)之后被关闭。
  • 可能需要先把默认创建的 wallet 删除——即删除所有已经储存的密码条目。
  • 如果 kwallet Migration Assistant在每次登录之后都要求输入密码,请重命名或删除 ~/.kde4/share/apps/kwallet 文件夹.

安装 kwallet-pam 包来提供对 PAM 的兼容模块。

选择性 安装 kwalletmanager 来使用 KWallet 管理工具。这个工具可以用于建立一个 blowfish 加密的KDE Wallet,同时提供了 kcm-module 没有提供的其他设置。

提示: 替代选项是使用 KWalletManager 然后设置一个空的 Kwallet 密码, 这样就可以避免需要输入密码来解锁 wallet。只要在 Change Password.. 的时候把两个框都留空就可以了。但是这样的话无法阻止对 wallet 的未授权访问。 因此非常建议打开 Access Control 里的 Prompt when an application accesses a wallet 选项来避免未授权访问。

配置 display manager

下面的几行必须存在于你使用的 Display Manager 的配置文件里:

auth            optional        pam_kwallet5.so
session         optional        pam_kwallet5.so auto_start

常见的 display manager 所需要修改的文件如下:

  • SDDM:不需要进行修改,因为 /etc/pam.d/sddm 里已经写好了。
  • GDM: 修改 /etc/pam.d/gdm-password
  • LightDM: 修改 /etc/pam.d/lightdm/etc/pam.d/lightdm-greeter
注意: 旧版本的 KDE 钱包与 LightDM 的整合存在漏洞,你需要安装更新版本(5.21.1-1以上)的kwallet-pam
/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

使用 KDE Wallet 存储 ssh key passphrases

安装 ksshaskpass

创建 一个 autostart script file 并把它标记为 executable:

~/.config/autostart-scripts/ssh-add.sh
#!/bin/sh
ssh-add </dev/null
提示: 上面这个 ssh-add.sh 脚本只会添加默认的 ~/.ssh/id_rsa key。如果你在 ~/.ssh/ 下有多个SSH key,假设分别是 key1, key2, key3,你需要像下面这样修改脚本来自动添加它们:
~/.config/autostart-scripts/ssh-add.sh
#!/bin/sh
ssh-add $HOME/.ssh/key1 $HOME/.ssh/key2 $HOME/.ssh/key3 </dev/null

你需要设置环境变量 SSH_ASKPASSksshaskpass

export SSH_ASKPASS="/usr/bin/ksshaskpass"

它会要你输入密码来解锁 SSH keys。在重启之后,输入kwallet密码之后 SSH keys 就会被解锁。

如果要添加一个新的 key 并把密码储存在 kwallet里,使用这个命令:

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

并把这个 key 按照上面所说的方法添加到 ~/.config/autostart-scripts/ssh-add.sh 的 keys 列表里。

Chrome 和 Chromium 的 KDE Wallet 支持

Chrome/Chromium 内置了 wallet 支持。在运行 Chromium 的时候加上 --password-store=kwallet 或者 --password-store=detect 参数来启用它。如果需要永久启用这个参数,参考 Chromium/Tips and tricks#Making flags persistent。(设置 CHROMIUM_USER_FLAGS 是无效的。)

See also