让 Git 更安全:如何使用 openssl.exe 实用程序生成 PKCS#8 格式的 ssh 密钥?

Jon*_*ica 6 git ssh

有一篇很好的文章说,股票“ssh-keygen”创建了一个较旧的、更容易破解的私钥,而 PKCS#8 是正确的选择。

因此,我想使用一种新的“ssh-pkcs8-gen”方法,而不是普通的 ssh-keygen 方法......(不适合我,适合那些挂在我的 git 服务器上的 git 用户)。

我所看到的所有内容都讨论了从 ssh-keygen 获取 ASN.1 输出并将其转换为 PKCS#8 这是很多步骤,我不想让我的用户生活变得不可能。

如何直接一步使用 openssl.exe 创建 PKCS#8 私钥(或通常与 Git 一起分发的类似工具......我相信 openssl 可以做到这一点)

小智 7

在 OpenSSH_8.2p1 上似乎ssh-keygen直接支持 PKCS8,例如:

ssh-keygen -m PKCS8 -t rsa


Von*_*onC 3

Martin Kleppmann的文章“提高 SSH 私钥文件的安全性”描述了:

因此,也许将两个操作链接在一个脚本中会导致在下一步中生成正确的密钥:

ssh-keygen -t rsa -N 'super secret passphrase' -f test_rsa_key
mv test_rsa_key test_rsa_key.old
openssl pkcs8 -topk8 -v2 des3 \
    -in test_rsa_key.old -passin 'pass:super secret passphrase' \
    -out test_rsa_key -passout 'pass:super secret passphrase'
Run Code Online (Sandbox Code Playgroud)