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

问题描述 投票:0回答:1

我试图通过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.");
java authentication sftp jsch
1个回答
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");
© www.soinside.com 2019 - 2024. All rights reserved.