web-dev-qa-db-ja.com

ssh-keygenはRSA秘密鍵を作成しません

秘密鍵を作成しようとしていますが、問題があります。

ssh-keygen -t rsa -b 4096 -C "[email protected]"を使用すると、次の形式の秘密鍵が取得されます。

-----BEGIN OPENSSH PRIVATE KEY-----
uTo43HGophPo5awKC8hoOz4KseENpgHDLxe5UX+amx8YrWvZCvsYRh4/wnwxijYx
...
-----END OPENSSH PRIVATE KEY-----

そして、これは私が使用しようとしているアプリケーションでは受け入れられません。

次のRSA形式のキーを期待しています。

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,25737CC2C70BFABADB1B4598BD8AB9E9

uTo43HGophPo5awKC8hoOz4KseENpgHDLxe5UX+amx8YrWvZCvsYRh4/wnwxijYx
...
-----END RSA PRIVATE KEY-----

正しい形式を作成するにはどうすればよいですか?私が問題を抱えているものを除いて、私が持っている他のすべてのMacが正しいフォーマットを作成しているので、これは奇妙です。

新しくインストールしたMac OS Mojaveを使用しています

91
Moon

私は最近同じ問題に直面しました(mojave 10.14.1へのアップグレード後)。この問題の2つの解決策があります。

  • Ssh-keygenバイナリをダウングレードします(任意のLinux/Dockerイメージから古いバージョンを簡単に取得できます)

[〜#〜]または[〜#〜]

  • オプションを追加-m PEMをssh-keygenコマンドに入力します。たとえば、ssh-keygen -m PEM -t rsa -b 4096 -C "[email protected]"は、ssh-keygenをPEM形式でエクスポートするように強制します。

Mojaveの現在のssh-keygenバージョンでは、デフォルトのエクスポート形式はRFC4716前述のように ここ

91
sayboras

OpenSSH秘密鍵形式の新しい鍵は、ssh-keygenユーティリティを使用して古いPEM形式に変換できます。

ssh-keygen -p -m PEM -f ~/.ssh/id_rsa

この結果を得るためだけに、古いOpenSSHにダウングレードする必要はありません。

76
mydeardiary