加密的厨师数据包json文件,如何解密显示内容?
Encrypted chef data bag json file, how to decrypt and show contents?
json 文件中有加密的数据包,我需要更改一些值。我需要 运行 类似...
$ knife data bag from file show --secret-file path/to/secret DATABAGNAME --config path/to/knife.rb
但是此命令给出错误:无法在当前目录或 'data_bags/show/ewe-jenkins' 中找到或打开文件 'DATABAGNAME'。所以显然命令不太正确。我需要帮助来弄清楚语法...
我需要一个可以来自 chef-repo 或 data_bags 目录的 运行 命令,它可以让我看到 json 文件的未加密值 data_bags。最终我想更改一些值,但获取未加密的值将是一个很好的起点 :) 谢谢!
我认为您混淆了 knife data bag show
和 knife data bag from file
命令。前者用于显示来自服务器的数据,后者用于上传数据。你在命令行上都有。
既然你在谈论 local json 文件,我假设你正在使用 chef-zero / local-mode。 json文件确实可以加密,内容可以用刀解密。
完整示例:
创建密钥和数据包项:
$ openssl rand -base64 512 | tr -d '\r\n' > /tmp/encrypted_data_bag_secret
$ knife data bag create mydatabag secretstuff --secret-file /tmp/encrypted_data_bag_secret -z
输入:
{
"id": "secretstuff",
"firstsecret": "must remain secret",
"secondsecret": "also very secret"
}
json文件确实加密了:
# cat data_bags/mydatabag/secretstuff.json
{
"id": "secretstuff",
"firstsecret": {
"encrypted_data": "VafoT8Jc0lp7o4erCxz0WBrJYXjK6j+sJ+WGKJftX4BVF391rA1zWyHpToF0\nqvhn\n",
"iv": "MhG09xFcwFAqX/IA3BusMg==\n",
"version": 1,
"cipher": "aes-256-cbc"
},
"secondsecret": {
"encrypted_data": "Epj+2DuMOsf5MbDCOHEep7S12F6Z0kZ5yMuPv4a3Cr8dcQWCk/pd58OPGQgI\nUJ2J\n",
"iv": "66AcYpoF4xw/rnYfPegPLw==\n",
"version": 1,
"cipher": "aes-256-cbc"
}
}
用刀显示解密内容:
# knife data bag show mydatabag secretstuff -z --secret-file /tmp/encrypted_data_bag_secret
Encrypted data bag detected, decrypting with provided secret.
firstsecret: must remain secret
id: secretstuff
secondsecret: also very secret
json 文件中有加密的数据包,我需要更改一些值。我需要 运行 类似...
$ knife data bag from file show --secret-file path/to/secret DATABAGNAME --config path/to/knife.rb
但是此命令给出错误:无法在当前目录或 'data_bags/show/ewe-jenkins' 中找到或打开文件 'DATABAGNAME'。所以显然命令不太正确。我需要帮助来弄清楚语法...
我需要一个可以来自 chef-repo 或 data_bags 目录的 运行 命令,它可以让我看到 json 文件的未加密值 data_bags。最终我想更改一些值,但获取未加密的值将是一个很好的起点 :) 谢谢!
我认为您混淆了 knife data bag show
和 knife data bag from file
命令。前者用于显示来自服务器的数据,后者用于上传数据。你在命令行上都有。
既然你在谈论 local json 文件,我假设你正在使用 chef-zero / local-mode。 json文件确实可以加密,内容可以用刀解密。
完整示例:
创建密钥和数据包项:
$ openssl rand -base64 512 | tr -d '\r\n' > /tmp/encrypted_data_bag_secret
$ knife data bag create mydatabag secretstuff --secret-file /tmp/encrypted_data_bag_secret -z
输入:
{
"id": "secretstuff",
"firstsecret": "must remain secret",
"secondsecret": "also very secret"
}
json文件确实加密了:
# cat data_bags/mydatabag/secretstuff.json
{
"id": "secretstuff",
"firstsecret": {
"encrypted_data": "VafoT8Jc0lp7o4erCxz0WBrJYXjK6j+sJ+WGKJftX4BVF391rA1zWyHpToF0\nqvhn\n",
"iv": "MhG09xFcwFAqX/IA3BusMg==\n",
"version": 1,
"cipher": "aes-256-cbc"
},
"secondsecret": {
"encrypted_data": "Epj+2DuMOsf5MbDCOHEep7S12F6Z0kZ5yMuPv4a3Cr8dcQWCk/pd58OPGQgI\nUJ2J\n",
"iv": "66AcYpoF4xw/rnYfPegPLw==\n",
"version": 1,
"cipher": "aes-256-cbc"
}
}
用刀显示解密内容:
# knife data bag show mydatabag secretstuff -z --secret-file /tmp/encrypted_data_bag_secret
Encrypted data bag detected, decrypting with provided secret.
firstsecret: must remain secret
id: secretstuff
secondsecret: also very secret