尝试在我的工作场所自动化 yubikey 部署

尝试在我的工作场所自动化 yubikey 部署

我正在尝试编写一个基本脚本,该脚本将在任何连接的 yubikey 上运行 gpg --card-edit 命令并在卡上生成 RSA 4096 密钥对

#!/usr/bin/env bash

red=`tput setaf 1`
green=`tput setaf 2`
reset=`tput sgr0`  
set -euf
set -o pipefail

echo "${red}script started${reset}"

echo " ${red}run card edit ${reset}"
gpg --card-edit --command-fd - < ~/bin/yubikey/input2.txt

input2.txt 包含我要运行的命令:

admin
generate

我无法找到处理从 gpg 获得的 PIN 提示的方法,因此出现此错误

gpg: error checking the PIN: Inappropriate ioctl for device

答案1

聚会有点晚了,但也许有人,包括未来的我,会欣赏这一点......:-)

git clone https://github.com/santiago-mooser/yubikey-provisioning-scripts.git
cd yubikey-provisioning-scripts
./yubikey_provision.sh -h
   This script provisions a yubikey by generating a master key, 3 subkeys and moving the subkeys to the yubikey. Please read the documentation for more information.

   Usage: yubikey_provision.sh [-e|--email EMAIL_ADDRESS] [-u|--user-pin USER_PIN] [-a|--admin-pin ADMIN_PIN] [-y|--yes]

   optional arguments:
     -h, --help           show this help message and exit.
     -e, --email          provide email used for PGP key. If it is not provided, the user is prompted for an email.
     -f, --first-name     provide first name used for PGP key. Defaults to an empty string.
     -l, --last-name      provide last name used for PGP key. Defaults to an empty string.
     -c, --comment        provide comment used for PGP key. Defaults to an empty string.
         --username       provide username used for PGP key. Defaults to an empty string.
     -p, --password       provide password used for PGP key. If it is not provided, a random one is generated.
     -u, --user-pin       provide new user pin for the yubikey. If none is provided, a random one is generated.
     -a, --admin-pin      provide new admin pin for the yubikey. If none is provided, a random one is generated.
     -y, --yes            skips prompts to reset the yubikey.
     -v, --version        prints out the version number.

该脚本将帮助您以正确的顺序和正确的标志运行所有其他帮助程序脚本,以创建新的私钥、子密钥、重置所连接的 yubikey 的 openPGP 小程序并将子密钥上传到 yubikey。

警告

该脚本还会将您的公钥上传到 openPGP 的公钥服务器!如果这不是您想要的,请在脚本中禁用它。

警告

阅读自述文件.md这里!

https://github.com/santiago-mooser/yubikey-provisioning-scripts

警告

yubikey 的私钥不会导出。如果您想导出私钥,请取消注释363-365脚本yubikey_provision.sh

或者,要重新配置新的子项,请按照此官方 yubikey 指南创建新子项,但选择选项 14 并继续执行指南的其余部分(包括将子项移至 yubikey):

警告

兼容性

该脚本已在 MacOS Monetrrey 和 Ventura 以及 Ubutuntu 20.04 LTS 及以上版本上进行了测试。它可能适用于早期版本,但这并不能保证。

相关内容