厨师在解密数据包值时抱怨

问题描述 投票:0回答:3

我正在尝试在配方中使用加密数据包,如下所示:

  secret = Chef::EncryptedDataBagItem.load_secret("/etc/chef/encrypted_data_bag_secret")
  encryptkey = Chef::EncryptedDataBagItem.load("tokens", "encryptkey", secret)

我的数据包如下所示:

{
  "id": "encryptkey",
  "encrypt": "FjJyopVcfoJNIsYk2xDBjA=="
}

但是,我不断收到以下错误:

   ERROR: Error decrypting data bag value: 'bad decrypt'. Most likely the provided key is incorrect
encryption chef-infra chef-recipe chef-solo consul
3个回答
0
投票

问题可能是因为 或者 性格。请按照以下步骤操作:

  1. 创造秘密

    $openssl rand -base64 512 | tr -d '\r\n' > <secret-file>

  2. 使用上传数据项

    $knife data bag from file <data-bag> </path/to/data-bag-item.json> --secret-file <secret-file>

  3. 从厨师服务器获取数据包项目

    $knife data bag show <data-bag> <data-bag-item-id>
    它将返回以下格式的加密数据:

id: mysql
pass:
cipher:         aes-256-cbc
encrypted_data: JZtwXpuq4Hf5ICcepJ1PGQohIyqjNX6JBc2DGpnL2WApzjAUG9SkSdv75TfKSjX4
iv:             VYY2qx9b4r3j0qZ7+RkKHg==
version:        1
user:
cipher:         aes-256-cbc
encrypted_data: 10BVoNb/plkvkrzVdybPgFFII5GThZ3Op9LNkwVeKpA=
iv:             uIqKHZ9skJlN2gpJoml6rQ==
version:        1
  1. 在从厨师服务器解密数据时使用 --secret-file arg
    $knife data bag show <data-bag> <data-bag-item-id> --secret-file <secret-file>
  2. 在配方中,使用以下语法:
data = data_bag_item(:<data-bag>, '<data-bag-id>', IO.read(Chef::Config[:encrypted_data_bag_secret]))
log "result1: #{data['id']}"
log "result2: #{data['user']}"
  1. 要在节点上运行配方,请使用 scp 命令将 secret-file 移动到节点的 /etc/chef/ 位置。 请勿复制/粘贴密钥。 文件在节点上可用后,将其重命名为 'encrypted_data_bag_secret'
$mv /etc/chef/secret /etc/chef/encrypted_data_bag_secret
  1. 如果未指定“secret”,chef-client将在client.rb文件中的encrypted_data_bag_secret设置指定的路径中查找secret。默认情况下,它是/etc/chef/encrypted_data_bag_secret

希望这对您有帮助。


0
投票

我已经看到了一些解决方案。就我而言,问题在于密钥和数据包文件格式。因为 Windows 最初以 dos 格式保存一些文件,所以我必须将它们转换为 Putty 可以读取的 UNIX 格式。

find <path> -type f -print0 | xargs -0 dos2unix

-1
投票

不是说显而易见的事情,但这意味着您没有正确创建加密数据包或密钥错误。由于我们没有密钥或不知道您运行了哪些命令,因此很难说出哪些命令。也真的真的停止使用该 API,我现在已经在两个问题中说过了。

此外,如果您连续遇到重大的用户体验问题,那么 SO 并不是一个好的媒介。通过 IRC 或 Slack 联系我,我们可能可以更快地做到这一点。

© www.soinside.com 2019 - 2024. All rights reserved.