答案1
您可以使用命令行上的标准输入选项为 KeePassXC 输入密码--pw-stdin
。因此,在最简单的方法,您可以使用以下命令自动打开 KeePassXC 数据库:
echo <yourpassword> | keepassxc --pw-stdin <path-to-your-database>.kdbx
与直接输入密码相比,这会严重损害安全性,因为您的密码以未加密的形式存储在系统上的文件中。
A更安全选项是使用另一个密码库,例如 Gnome Keyring(来源)。您的密码以不可读的形式存储,需要以您的用户身份登录才能打开 KeePassXC 或读取密码。
您需要安装libsecret-tools
才能使其工作。
首先,您需要将 KeePassXC 密码存储在 Gnome 密钥环中。您可以使用“密码和密钥”工具或以下命令执行此操作:
secret-tool store --label="KeePass <database_name>" keepass <database_name>
在标签旁边,您需要提供一个属性(这里我们选择“keepass”)和一个值(您可以使用数据库名称(<database_name>)或其他不包含空格的字符串)。
登录后,您可以使用命令启动并解锁 KeePassXC
secret-tool lookup keepass <database_name> | keepassxc --pw-stdin <path-to-your-database>.kbdx
与使用 KeepPassXC 时自己提供密码相比,此选项的安全性仍然明显较低,但知情的用户应该可以自由地在安全性和便利性之间取得平衡。
答案2
我知道两岁了。
注意安全隐患,如果您只是希望在本地存储密码,并且不希望其他人访问计算机,那么这应该没问题。否则,您可能更愿意考虑获取 yubikey。
我没有使用过它们,尽管我研究过它们,它们用于身份验证,这正是你想要做的。KeePassXC 支持使用 Yubikey。
话虽如此,我对评论中关于终端挂起的问题有一个解决方案。以下是一个小的 bash 脚本。
打开你的终端。
touch KeePassLogin && chmod +x KeePassLogin && nano KeePassLogin
输入以下代码:
#!/bin/bash
secret-tool lookup keepass Passwords | keepassxc --pw-stdin ~/Secured/Passwords.kdbx & sleep 3 ; echo ''
echo 的功能与回车键相同。如果您不熟悉 nano,请在进行更改后按 ctrl + x 然后按回车键保存文件。
添加了延迟,因为密码提示似乎并不总是及时出现在回显中。如果三秒对您来说太长,您可以尝试缩短睡眠时间。
回到终端提示符后:
./KeePassLogin
您现在可以添加一个以“/path/to/keePassLogin”为命令的新启动应用程序。
更新 我开始思考这个问题,主要是安全隐患,想到 Yubikey 后,我选择实现一点“安全意识”的补充。
我将 keepassxc 数据库移到 USB 驱动器上并实现了这一点。
#!/bin/bash
# File: KeepassLogin check if specific security key is mounted.
while [ -z "$mnt" ]; do
mnt=$(lsblk --output MOUNTPOINT | grep securityKey)
if [[ $mnt != "" ]]; then
secret-tool lookup keepass Passwords | keepassxc --pw-stdin $mnt/KeePassXC.kdbx > /dev/null 2>&1 &
sleep 2
echo "" > /dev/null 2>&1
fi
sleep 5
done
exit
添加启动应用程序来运行该文件(在启动应用程序 GUI 中浏览到该文件)。
简而言之,在登录时,keepasslogin 设置为运行。它将每 5 秒运行一次,您可以根据需要进行调整,也许 60 秒适合您。循环运行,直到找到 usb 设备(lsblk 行)我将其命名为 securityKey 以使其易于识别。将其更改为您的 usbstick 的标签。
我还将输出发送到 /dev/null。所以如果您手动运行脚本,比如从键盘快捷键运行,那么您就不会在终端中得到不必要的输出。
因此,虽然它并不是真正的安全功能,但它比存储在计算机上的数据库更安全。你可以随身携带数据库,并在需要时插入。
所以,它不是 Yubikey,但其理念是类似的。