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的转换工作,在这里:
- 按“加载”,然后选择使用PuTTYgen创建的私钥。
- 输入密码以加载密钥。
- 从转换菜单中选择导出OpenSSH密钥
- 保存私钥。
以上是 JSCH-无效的私钥 的全部内容, 来源链接: utcz.com/qa/401104.html