🔑

ansible-vault encrypt_string で暗号化した文字列を復号化する際にエラーが発生する

2023/05/26に公開

背景

ansible-vault encrypt_stringを使って文字列単位で暗号化したものを復号化しようとした際に
Vault format unhexlify error: Non-hexadecimal digit found for -とエラーが発生した。

だめなやつ

% echo '$ANSIBLE_VAULT;1.1;AES256
          38613633373264383735633534373430376330316464336332613038343339616564333730333661
          3761383664303038303031306235316434616332356533360a653433313339396361333039333032
          35653833616565393664306334643562323035373335656465306535623965343835613435643736
          6465313436376135370a663836646365393261346637643036353239366636656637343538643565
          3631' | ansible-vault decrypt
Vault password:

[WARNING]:
There was a vault format error in -: Vault format unhexlify error: Non-hexadecimal digit found
ERROR! Vault format unhexlify error: Non-hexadecimal digit found for -

解決法

暗号化部分のインデントを消す

% echo '$ANSIBLE_VAULT;1.1;AES256
38613633373264383735633534373430376330316464336332613038343339616564333730333661
3761383664303038303031306235316434616332356533360a653433313339396361333039333032
35653833616565393664306334643562323035373335656465306535623965343835613435643736
6465313436376135370a663836646365393261346637643036353239366636656637343538643565
3631' | ansible-vault decrypt
Vault password:
Decryption successful
hellowolrd

これでもいける

% echo '$ANSIBLE_VAULT;1.1;AES256
          38613633373264383735633534373430376330316464336332613038343339616564333730333661
          3761383664303038303031306235316434616332356533360a653433313339396361333039333032
          35653833616565393664306334643562323035373335656465306535623965343835613435643736
          6465313436376135370a663836646365393261346637643036353239366636656637343538643565
          3631' | tr -d ' ' | ansible-vault decrypt
Vault password:
Decryption successful
hellowolrd

最後に

たまにこういうので時間取っちゃうから知識を増やしていきたい(切実)

Discussion