启动时启动 KeePassXC

启动时启动 KeePassXC

我在笔记本电脑、手机和台式机上使用 KeePassXC。虽然我喜欢在笔记本电脑上重新输入主密码,或在手机上使用指纹验证,但我发现每天必须在台式机上重新输入主密码非常烦人。

有没有办法在启动时使用 bash 脚本启动 KeePassXC 并自动输入密码?

我发现了有关 KeePassX 的类似问题这里但它是2014年的,我不明白回答

答案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,但其理念是类似的。

相关内容