使用 ppk 文件进行 java sftp 身份验证
Posted
技术标签:
【中文标题】使用 ppk 文件进行 java sftp 身份验证【英文标题】:java sftp authentication with ppk file 【发布时间】:2018-05-05 10:38:55 【问题描述】:我正在尝试通过 java 中的 JSCH lib 连接 sftp 服务器,我对 java 中的公钥/私钥身份验证不太了解,我有一个供应商提供的 ppk 文件,我必须上传我的文件,下面是我的 java 代码,谁能指导我如何使用这个 public 与 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.");
【问题讨论】:
您遇到了什么实际问题?你的代码有效吗?它会产生错误消息吗?错误说明了什么? 我收到错误Auth Failed
,我不知道如何使用供应商提供的 MTBC-SVB-PRVk.ppk 文件登录远程 SFTP
你用的是什么版本的jsch?
使用 jsch-0.1.54
我如何使用此文件对远程 SFTP 服务器进行身份验证
【参考方案1】:
我使用 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");
【讨论】:
以上是关于使用 ppk 文件进行 java sftp 身份验证的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 ppk 公钥通过 python Paramiko 进行 ssh 连接