Java 带头的RSA私钥和OPENSSH私钥之间有什么区别?
我正在使用mac上ssh keygen生成的公钥/私钥设置文件到服务器的SFTP传递。我生成的私钥看起来与代码库中已有的其他私钥不同(它没有头,是“OPENSSH私钥”,而不是“RSA私钥”) 我的java FtpUtil抛出了Java 带头的RSA私钥和OPENSSH私钥之间有什么区别?,java,ssh,sftp,Java,Ssh,Sftp,我正在使用mac上ssh keygen生成的公钥/私钥设置文件到服务器的SFTP传递。我生成的私钥看起来与代码库中已有的其他私钥不同(它没有头,是“OPENSSH私钥”,而不是“RSA私钥”) 我的java FtpUtil抛出了无效的privatekey错误 这是因为我生成的密钥没有以某种方式正确格式化吗?有没有办法将此私钥更改为使用头 这是代码库中其他私钥的外观: -----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info:
无效的privatekey
错误
这是因为我生成的密钥没有以某种方式正确格式化吗?有没有办法将此私钥更改为使用头
这是代码库中其他私钥的外观:
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,E26BE59A622AEDE6A899FE18AD369AA0
<key text>
-----END RSA PRIVATE KEY-----
看起来这个私钥的格式确实不正确。 也许最好描述一下您是如何生成私钥的,以及它是如何在代码中处理的 无论如何,如果可能,您可以尝试使用以下方法生成加密的RSA私钥:
openssl genrsa -des3 -out private_key.pem 2048
欺骗和(部分地)
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
openssl genrsa -des3 -out private_key.pem 2048