JSCH-无效的私钥在实际服务器中工作

问题描述 投票:0回答:1

我们正在尝试使用JSCH从远程服务器下载文件。尝试时,已经在两台服务器之间建立了SFTP密钥交换]

SFP username@hostname

它成功连接,无需输入任何密码。但是在Java代码中,当我们尝试使用JSCH进行连接时会得到无效的私钥异常。

ERROR com.crer.log.debug - com.jcraft.jsch.JSchException: invalid privatekey:

我完成的代码如下所示

JSch jsch = new JSch();
            String privateKey = location of the private key on client server
            jsch.addIdentity(privateKey);
            session = jsch.getSession(stpUser, sftpHost, sftpPort);
            Properties config = new Properties();
            config.put("StrictHostKeyChecking", "no");
            session.setConfig(config);
            session.connect();

编辑:

我正在使用的JSCH版本是0.1.54

私钥开始像

---- BEGIN SSH2 ENCRYPTED PRIVATE KEY ----
Subject: username
Comment: "2048-bit rsa, username@host, Tue Dec 13 2016 19:25:22 \
-0500"

我什至尝试将私钥转换为openssh格式,但遇到一些异常

ssh-keygen -i -f id_rsa_2048_a > id_rsa_2048_a_openssh
Private key -f is unreadable: Failed to open `-f': No such file or directory / Failed to read file `-f'.
Error: Cannot determine the type of the key.

如果我从命令中删除-f则可以,但是我相信该文件未正确转换,就好像我使用该文件一样,我也遇到同样的异常。

这里的任何帮助都将非常有帮助。不知道出了什么问题。

我们正在尝试使用JSCH从远程服务器下载文件。当我们尝试成功连接SFP username @ hostname时,已经在两台服务器之间建立了SFTP密钥交换...

java sftp jsch
1个回答
0
投票

我最近在也使用JSCH的Jenkins ssh插件中遇到此问题。

© www.soinside.com 2019 - 2024. All rights reserved.