java – JSCH – 无效的私钥
发布时间:2020-12-14 05:18:13 所属栏目:Java 来源:网络整理
导读:我正在运行JDK 1.7 Windows 7使用netbeans 7.2 我已经生成了一个SSH私有公钥对(SSH2-2048位)使用putty-keygen.我没有私钥密码. 我正在尝试使用SFTP连接到其中一台主机.但是当我通过私钥(ppk)设置Identity时,代码返回无效的私钥错误.我在WinSCP中使用相同的私
我正在运行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:TEMPkey.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键>保存私钥. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |