有没有办法直接在bashscript中使用pinentry-tty?例如。作为“阅读”的更安全的替代品。我在考虑这样的事情:
local pass=$(pinentry-tty);
这允许我输入几行,但没有任何内容保存到变量中。
答案 0 :(得分:1)
不能以您想要的方式轻松调用不同的pinentry
实现。它遵循一个简单的协议,它还提供了几种配置提示和打印错误消息的可能性。一个示例会话,其中GETPIN
是STDIN
上发出的命令,而foo
是用户输入的密码,并在STDOUT
上返回了其他状态消息:
$ pinentry
OK Pleased to meet you
GETPIN
D foo
OK
答案 1 :(得分:0)
虽然这不适用于所有 pinentry 实现,但您可以尝试按如下方式调用它:
password=$(echo -e "SETPROMPT Please enter your password:\nGETPIN\n" | \
pinentry | \
sed -nr '0,/^D (.+)/s//\1/p')
在我的 Arch 机器上,这适用于 pinentry-gnome3
、pinentry-gtk-2
和 pinentry-qt
- 但不适用于 pinentry-curses
或 pinentry-tty