使用公用密钥认证和代理服务器在SFTP服务器上获取文件的Java程序

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

在我们的项目中,我们需要使用公钥身份验证从外部SFTP服务器获取文件。我已经在线搜索过,但是没有任何提及代理服务器路由的示例,因为根据公司的政策是必需的]

我们正在Unix服务器上使用以下命令来获取文件,但是我们想使用java程序来实现此功能

sftp -v -oIdentityFile=/home/intusr/.ssh/id_rsa -oProxyCommand="/usr/bin/corkscrew 11.555.66.22 4444 %h %p" [email protected]:stage/filedir/

您的帮助将不胜感激。到目前为止,我发现的最佳资源是https://kodehelp.com/java-program-for-uploading-file-to-sftp-server/

java ssh proxy sftp public-key-encryption
1个回答
0
投票

最常用的Java SSH库是JSch,它支持公钥身份验证和HTTP代理:

结合起来,代码将像:

JSch jsch = new JSch();
jsch.addIdentity("/path/to/private/key");
Session session = jsch.getSession("user", "host");
ProxyHTTP  proxy = new ProxyHTTP("proxy", proxyport)
proxy.setUserPasswd("proxyusername", "proxypassword");
session.setProxy(proxy);
session.connect();

有关下载文件,请参阅:How to retrieve a file from a server via SFTP?

您也必须​​verify server host key

© www.soinside.com 2019 - 2024. All rights reserved.