我正在尝试通过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.");
答案 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");