🔑
ansible-vault encrypt_string で暗号化した文字列を復号化する際にエラーが発生する
背景
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