我正在使用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();
}