服务器主机密钥使用问题

服务器主机密钥使用问题

我有 Openssl 格式的服务器主机密钥(私钥),我想将其用于服务器身份验证。我更喜欢使用信任模型,即客户端本地数据库应将每个主机名与相应的公共主机密钥关联起来。由于 Openssh 架构不支持 Openssl 格式密钥,我正在寻找一种解决方案,可以将我的 Openssl 格式私钥转换为 Openssh 格式私钥。感谢任何帮助解决此问题的帮助

答案1

这不是一个真正的答案,但太长而无法作为评论阅读。

不清楚您问的是私钥还是公钥。

OpenSSH 支持所有 8 种 (*) PEM 格式私人的OpenSSL 使用的密钥。事实上,从历史上看(自 v1 过时以来),它生成仅有的6 种 OpenSSL“传统”格式,但也可以读取 2 种 PKCS8 格式;自 2014 年 6.5 版以来,它支持OpenSSH 定义的(与 OpenSSL 不兼容的)“新”格式,但默认情况下仅对 Ed25519 使用此默认格式,保留 RSA DSA ECDSA 的 OpenSSL 格式;自 2018 年 7.8 版起,它对所有密钥类型默认为“新”,但仍然可以生成或转换为 OpenSSL(Ed25519 除外);请参阅在 openssl 和 openssh 之间转换密钥以及那里链接的更多内容。 (*) 自 2015 年 7.0 版以来,OpenSSH 默认不使用 DSA 身份验证密钥在协议中,除非您手动启用它们(在两端);关于这一点,IIRC 在几个堆栈上都有现有的问题。但它仍然支持生成、转换和以其他方式操作 DSA 密钥文件,即使这些文件大部分是没用的。

OpenSSH 的民众密钥格式与 OpenSSL 不同,但从私钥文件开始,您可以直接使用它ssh-keygen -y来创建 OpenSSH 格式的公钥;这在手册页中有记录。此外,自 2012 年最新的 6.0 版ssh-keygen -i -m pkcs8(虽然名称不准确)以来,可以从 OpenSSL 所谓的“PUBKEY”格式(实际上是 X.509 SubjectPublicKeyInfo)转换为 OpenSSH 格式。仅当您需要将 OpenSSL 公钥转换为 OpenSSH 格式时无需使用 OpenSSH它很难吗?有很多关于它的问题,大部分是在 stackoverflow 上(因为它实际上并不简单)。

相关内容