JSCH-无效的私钥

我正在使用netbeans 7.2运行JDK 1.7和Windows 7,我已经使用putty-

keygen生成了SSH私钥和公钥对(SSH2-2048位)。我没有私钥密码。我现在正在尝试使用SFTP连接到主机之一。但是,当我通过私钥(ppk)设置身份时,代码将返回无效的私钥错误。我在WinSCP中使用了相同的私钥来连接到相同的主机,并且工作正常。请帮助我解决错误。这是我的代码:

JSch jsch = new JSch();

Session session = null;

try {

jsch.addIdentity("D:\\TEMP\\key.ppk");

session = jsch.getSession("tiabscp", "ssiw.support.qvalent.com", 22);

session.setConfig("StrictHostKeyChecking", "no");

//session.setPassword("");

session.connect();

Channel channel = session.openChannel("sftp");

System.out.println("Getting connected");

channel.connect();

System.out.println("connected successfully");

ChannelSftp sftpChannel = (ChannelSftp) channel;

sftpChannel.get("remotefile.txt", "localfile.txt");

sftpChannel.exit();

session.disconnect();

}catch (JSchException e) {

e.printStackTrace();

}catch (SftpException e) {

e.printStackTrace();

}

回答:

我猜您的密钥不是OpenSSH密钥文件格式。JSch期望私钥采用OpenSSH格式。

您可以使用的puttygen按下面介绍的步骤将私钥与OpenSSH的转换工作,在这里:

  1. 按“加载”,然后选择使用PuTTYgen创建的私钥。
  2. 输入密码以加载密钥。
  3. 从转换菜单中选择导出OpenSSH密钥
  4. 保存私钥。

以上是 JSCH-无效的私钥 的全部内容, 来源链接: utcz.com/qa/401104.html

回到顶部