我已经使用 Putty 生成了私钥/公钥对。我有一个扩展名为 .pem 的私钥文件和一个扩展名为 .pub 的公钥文件。
现在我想从中创建一个证书并导入到 Windows“受信任的根证书颁发机构”。这样做的原因是我需要使用私钥连接到 SFTP,而我不想将私钥存储在磁盘上。
我尝试了下面显示的 OpenSSL 命令,但失败并出现错误 -“没有证书与私钥匹配”
openssl pkcs12 -export -out MyCert.pfx -inkey private.pem -in public.key
如何解决?并获取包含这两个密钥的证书文件?
答案1
一般来说,SSH 不使用证书。它使用简单的密钥对。有一些使用证书的 SSH 专有扩展。最著名的是 OpenSSH。
PuTTY 在最新版本中支持 OpenSSH 证书。SSH.NET 根本不支持证书。但请注意,OpenSSH 证书是特殊证书。我认为它们与 Windows 证书存储不兼容。即使它们兼容,我也确信 OpenSSH 无论如何也不会使用 Windows 证书存储。因此,无论如何您都必须将证书存储到文件中。
如果您不想将密钥对存储到文件中,可以将其硬编码到 C# 二进制文件中。
有关示例,请参阅 Stack Overflow 上关于使用 SSH.NET 从配置字符串加载 SSH 私钥。