加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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键>保存私钥.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读