如何从 authinfo.gpg 轻松获取密码

How to easily get password from authinfo.gpg

安装并配置 gpg 后,它可以用于多种用途。我什至学会了如何为我的应用程序加密任意数据,我可以轻松地做这样的事情:

gpg2 -q --for-your-eyes-only --no-tty -d ~/my-encrypted-file.gpg

有一件事我想不通,一定有一种从 authinfo.gpg 检索密码的惯用方法,对吗?

所以假设我想要一个将外部驱动器安装到某个远程机器的脚本(我们称之为 'beefy-server'),但我不想公开 uname/password。如果我将其加密保存在 authinfo.gpg 标准化形式:

machine beefy-server login admin password foobar1030

我当然可以:

gpg2 -q --for-your-eyes-only --no-tty -d ~/.authinfo.gpg

然后将其通过管道传输到 awk、sed 等等,现在我是这样做的:

gpg2 -q --for-your-eyes-only --no-tty -d ~/.authinfo.gpg \
| grep beefy-server \
| sed -e "s/.*password\(.*\).*$//"

但是有没有更好的方法呢?

我认为通过 awk 传输 gpg 输出的常规方法是

gpg2 -q --for-your-eyes-only --no-tty -d ~/.authinfo.gpg | awk '/machine beefy-server login yourname/ {print $NF}'

假定您在 authinfo.gpg 中有一行在末尾有 beefy-server 和密码的详细信息。像这样

machine beefy-server login yourname port 465 password myverysecretpassword