0

我想使用keepassxc-cli(备份)shell 脚本从 Keepass 数据库中检索密码。(出于安全目的,它宁愿不将其保存在我的文件系统上的文本文件中。)所需的命令如下所示:

/Applications/KeePassXC.app/Contents/MacOS/keepassxc-cli show -a Password --key-file=/path/to/keyfile /path/to/database.kdbx "/path/to/entry/within/database"

在终端上手动输入此命令时,系统会提示我输入主密码,然后在输入此主密码后,引用的密码将显示在下一行:

Enter password to unlock /path/to/database.kdbx: <me_entering_my_master_password>
TESTPASSWORD

我的脚本的相关部分如下所示(上述命令存储为字符串,KEEPASSCMD我只是为了调试目的而回显):

REPOPASSWORD=$(eval $KEEPASSCMD)
echo $REPOPASSWORD

但是,在运行脚本时,我没有收到输入主密码的提示,而是在终端上没有显示任何内容。“盲目”输入我的主密码后,显示以下输出:

Enter password to unlock /path/to/database.kdbx: TESTPASSWORD

也就是说,提示也存储在REPOPASSWORD中。是否有可能以某种方式排除提示,所以只有字符串TESTPASSWORD被存储在REPOPASSWORD

4

1 回答 1

0

你用的是哪个外壳?您的代码在 bash 和 zsh 上都适用于 keepassxc 2.6.2。你试过没有评估吗?

REPOPASSWORD=$(/Applications/KeePassXC.app/Contents/MacOS/keepassxc-cli show -a Password --key-file=/path/to/keyfile /path/to/database.kdbx "/path/to/entry/within/database")
echo $REPOPASSWORD
于 2020-10-31T13:20:25.860 回答