java – JSCH – 无效的私钥

前端之家收集整理的这篇文章主要介绍了java – JSCH – 无效的私钥前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在运行JDK 1.7& Windows 7使用netbeans 7.2
我已经生成了一个SSH私有&公钥对(SSH2-2048位)使用putty-keygen.我没有私钥密码.
我正在尝试使用SFTP连接到其中一台主机.但是当我通过私钥(ppk)设置Identity时,代码返回无效的私钥错误.我在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,按照步骤描述here

>按加载,然后选择所创建的私钥的puttygen.>输入密码以加载密钥.>从转换菜单选择导出OpenSSH键>保存私钥.

猜你在找的Java相关文章