【问题标题】:What is the difference between RSA private key with headers and OPENSSH private key? [duplicate]带有标头的 RSA 私钥和 OPENSSH 私钥有什么区别? [复制]
【发布时间】:2019-09-08 01:10:08
【问题描述】:

我正在使用 Mac 上的 ssh-keygen 生成的公钥/私钥设置 SFTP 将文件传送到服务器。我生成的私钥看起来与代码库中已有的其他私钥不同(它没有标题,它是“OPENSSH PRIVATE KEY”而不是“RSA PRIVATE KEY”。

我的 java FtpUtil 抛出 invalid privatekey 错误。

这是因为我生成的密钥格式不正确吗?有没有办法更改此私钥以使用标头?

这是代码库中其他私钥的样子:

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

<key text>

-----END RSA PRIVATE KEY-----

这是我的私钥的样子:

-----BEGIN OPENSSH PRIVATE KEY-----

<key text>

-----END OPENSSH PRIVATE KEY-----

我收到以下异常:

Caused by: com.jcraft.jsch.JSchException: invalid privatekey: [B@5c0f79f0
    at com.jcraft.jsch.KeyPair.load(KeyPair.java:664)
    at com.jcraft.jsch.IdentityFile.newInstance(IdentityFile.java:46)
    at com.jcraft.jsch.JSch.addIdentity(JSch.java:442)
    at org.springframework.integration.sftp.session.DefaultSftpSessionFactory.initJschSession(DefaultSftpSessionFactory.java:410)
    at org.springframework.integration.sftp.session.DefaultSftpSessionFactory.getSession(DefaultSftpSessionFactory.java:385)
    ... 46 more

【问题讨论】:

标签: java ssh sftp


【解决方案1】:

看起来这个私钥的格式确实不正确。 也许最好描述一下您是如何生成私钥以及如何在代码中对其进行处理的?

无论如何,如果可能的话,您可以尝试使用以下方法生成加密的 RSA 私钥:

openssl genrsa -des3 -out private_key.pem 2048

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-05
    • 2019-11-15
    • 1970-01-01
    • 2015-04-10
    • 1970-01-01
    • 2018-04-10
    • 2011-03-30
    • 1970-01-01
    相关资源
    最近更新 更多