首页 > 解决方案 > 使用 PGP 密钥通过 curl api 进行 Vault 初始化失败

问题描述

我正在尝试使用 api 初始化 hashcorp vault。

有效载荷.json:

{
 "secret_shares": 2,
 "secret_threshold": 2,
 "pgp_keys": [
            "sample_pub_1.asc",
            "sample_pub_2.asc"
        ]
}

当我执行以下命令时:

curl     --request PUT     --data @payload.json     http://localhost:8200/v1/sys/init

出现以下错误:

{“错误”:[“无效的密封配置:错误解码给定 PGP 密钥:> 输入字节 6 处的非法 base64 数据”]}

但如果我用命令行初始化 Vault 一切正常:

vault operator init -key-shares=2 -key-threshold=2 -pgp-keys="sample_pub_1.asc, sample_pub_2.asc"

下面是输出:

Unseal Key 1: wcBMA3EOVuvAOcf6AQgAhm4FpWmwhU9BV8jaYLuL8gyzhpQgPs76ByF/v5XFYj3PKaVcm2U3nzn7dablYMheGkFbOytCQ8G1guJrQ756+9t0dotAzghEeCUDwwIEU5lqENR/nAJXT4NvgrycASfS5OKv7vT6L/L8GokiHPSdBdouI3/4GyHKygrqaAUjbmNDUrgXDEfaWMkNv58yJE1tVpjYuKh8pWqNqJgSyDdkrXUt4AEY6yLTsLaCkOuu0j1sVE5D3huE0UV8u59qDwf9FusACgoyhyqyNwXqMn0pGet0hebk9pY/F293LWUr2zp7otbo5sX7H+086pl4plxUHo3GN/vhYnfwIVvJbCz68tLgAeShAyKfKCX6kFz+QX3LCkLW4UOS4Dngt+EvS+B24sFDtIvgPOZPueiPgmxwj5Evv0GzPm8iDvnrxvaWU1vxl+YlP1f3PI+rs+oBCndlBL0lVpFTDbtVLrFb/szxj+rRwKnz0oOZ4Djh2ufgDeQIlx/Zw6T1y+41jj8ITwn24uo5ChnhmeIA

Unseal Key 2: wcBMA0Eqk591x+XTAQgAQDi/V1yGqHlrSDWJ2SLeiqaLzpNrcbC5cB4+CxzkZsiVgjrd5YitULL7TmWkYl43VSPxs0hnk3O+uRUp+D4gVjUWykpGmdhwB5CiWHwNMzuIUE1E/UQVMQ39OLnG+C3VgzRe8HNhEr6pkbLFgSQLlr/459bgEyAPrW/U1PrHrH+hf+eE0me5/hUQWBfqcZHeY1Zp3A97UUBV54yarSgfRyqluiXe5j6L2X0qw5Ge/luRR8xPygyx3JqlIlPCj6liMS/to/yRGOKvYAXjXdflpBeodx3cSUOMmBTrzk1h6otM8LR28dp7qS+0qX0mWHFAfElMrJh9tz5PpWY5WIdyJNLgAeQO/Bvz4UMJLBAzEcCy2G7L4fDf4I/gSuHJROC+4lgAeaTgv+bRQCmvD4SEQYUJX3IP0cwMgskkys/vwUMqnZSNMS0gXayRvVSJ5YAHsynuixp+aE1x6UBiEw6cjVX7wwfupvdg4PTh4GPgG+ TjTQDF06tQigWmpxio1JAa4jdU9uzhWbMA

初始根令牌:aa3cccce-5ac8-4aef-7d50-6fab16e89ee4

标签: pgphashicorp-vault

解决方案


你可能没有对你的 pgp_keys 进行 base64 编码;根据使用 curl init 时的官方 Vault 文档:

密钥必须从其原始二进制表示进行 base64 编码


推荐阅读