よかろうもん!

アプリからインフラまで幅広くこなすいまどきのクラウドエンジニアが記す技術ブログ

ERROR: padding check failed

インスタンスストアタイプのAMIをEBSタイプに変換しようと、 ec2-unbundle コマンドを実行したところ以下のようなエラーが出力された。

#ec2-unbundle -k pk-XXXXXXXX.pem -m /mnt/ami/image.manifest.xml -s /mnt/ami -d /mnt/ami --debug

ERROR: padding check failed
#
/usr/lib/ruby/site_ruby/ec2/amitools/unbundle.rb:47:in `private_decrypt'
/usr/lib/ruby/site_ruby/ec2/amitools/unbundle.rb:47:in `unbundle'
/usr/lib/ruby/site_ruby/ec2/amitools/unbundle.rb:97:in `main'
/usr/lib/ruby/site_ruby/ec2/amitools/tool_base.rb:201:in `run'
/usr/lib/ruby/site_ruby/ec2/amitools/unbundle.rb:106

原因は、pk-XXXXXXXX.pem ファイルのチェックエラー。
今回は文字コード周りが異なっていたためにエラーとなったようだ。

pk-XXXXXXXX.pem や cert-XXXXXXX.pem をコピーする場合は、横着して文字列のコピペをするのではなく
きちんとファイルを転送するように心がけておくと、今回のようなエラーは発生しないはず。

EC2 API ToolsやEC2 AMI Toolsを利用して上記のエラーが発生した場合は、X509証明書の転送/転記ミスを疑おう。