如何从 bash 脚本调用 pinentry

如何从 bash 脚本调用 pinentry

如何pinentry从 bash 脚本调用,以便提示我在调用我的脚本的同一终端上输入单个输入,然后通过管道将条目传递到其他命令,stdout为了这个问题,让我们假设它的echo.

我希望答案是这样的

pinentry-tty <this is what I dont know> | echo

我的问题不是关于:

  • gpg
  • ssh
  • git
  • 如何使用命令行以外的任何东西pinentry
  • 如何使用设置环境变量read -s

让我们假设:

  • 我让它通过了第二个谷歌页面
  • 我用了pinentry info

如果答案适用于我系统上当前的版本,那就太好了,但我不希望您测试它。

pinentry-tty (pinentry) 1.2.0
Copyright (C) 2016 g10 Code GmbH
License GPLv2+: GNU GPL version 2 or later <https://www.gnu.org/licenses/>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

我不喜欢我的问题的语气,但我只是想让问题尽可能清楚。

答案1

Ichthyo 的评论分享的答案将对您有用。如果您不想使用 GUI,并在终端中输入 PIN,请执行以下操作:

sudo update-alternatives --config pinentry

并选择pinentry-curses.

那么,你的脚本与 SO 答案相同:

tty=$(tty)

pwd=$(echo "GETPIN" | pinentry -T $tty | grep D)

pwd=${password#D }

您还可以添加更多命令(发现这里) 分隔\n

pwd=$(echo "setdesc my program\nsetprompt please enter password:\nGETPIN\n" | pinentry -T $tty | grep D)

相关内容