タイトルが無駄に長いけど、まぁ、そういうことなんですよ。
NGパターン
$ ssh-keygen -t rsa -f ~/.ssh/ssh_key
$ openssl rsa -in ~/.ssh/ssh_key -outform pem > ~/.ssh/ssh_key.pem
$ unable to load Private Key
OKパターン
$ ssh-keygen -t rsa -f ~/.ssh/ssh_key -m PEM
$ openssl rsa -in ~/.ssh/ssh_key -outform pem > ~/.ssh/ssh_key.pem
$ writing RSA key
解説
OpenSSH 7.8で秘密鍵のヘッダが変わったらしい。
# old style
-----BEGIN RSA PRIVATE KEY-----
# new style
-----BEGIN OPENSSH PRIVATE KEY-----
鍵生成時の-m PEM
がミソ。これを追加することで、古いPEM形式の鍵を生成できる。OpenSSLで.pem
に変換する時は、古い形式のヘッダじゃないと秘密鍵を読み取れないっぽい。