【发布时间】: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
【问题讨论】: