我正在运行JDK 1.7&
Windows 7使用netbeans 7.2
我已经生成了一个SSH私有&公钥对(SSH2-2048位)使用putty-keygen.我没有私钥密码.
我正在尝试使用SFTP连接到其中一台主机.但是当我通过私钥(ppk)设置Identity时,代码返回无效的私钥错误.我在WinSCP中使用相同的私钥连接到同一个主机它工作正常请帮我解决错误.
这是我的代码:
我已经生成了一个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键>保存私钥.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。