使用ppk文件进行java sftp身份验证

时间:2017-11-21 20:22:54

标签: java authentication sftp jsch

我正在尝试通过Java中的JSCH lib连接sftp服务器,我对java中的publice /私钥认证没有太多了解,我有供应商提供的ppk文件,我必须上传我的文件和下面是我的java代码,任何人都可以指导我如何使用这个公用来验证SFTP服务器

String privateKey = "E:\\csv_svb\\MTBC-SVB-PRVk.ppk";
        JSch jsch = new JSch();                        
                jsch.addIdentity(privateKey);                        
                session = jsch.getSession(SFTPUSER, SFTPHOST,SFTPPORT);
    //                        session.setPassword(SFTPPASS);
                            java.util.Properties config = new java.util.Properties();
                            config.put("StrictHostKeyChecking", "no");
                            session.setConfig(config);
                            session.connect();
                            channel = session.openChannel("sftp");
                            channel.connect();
                            out.writeln("Connected");
                            channelSftp = (ChannelSftp)channel;
                            channelSftp.cd(SFTPWORKINGDIR);
                            File f = new File(lRs.getString("SEND_FILE_PATH").toString());
                            channelSftp.put(new FileInputStream(f), f.getName());
                            out.writeln("File Uploaded to FTP Server Sucessfully.");

1 个答案:

答案 0 :(得分:0)

我使用chilkatsoft提供的示例将.ppk文件转换为.pem openssh文件。 https://www.example-code.com/java/ssh_ppk_to_pem.asp

然后添加.pem标识与jsch一起工作就可以了。

JSch jSch = new JSch();
jsh.addIdentity("unencrypted_openssh.pem");