java – JSCH – 无效的私钥

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