在我们的项目中,我们需要使用公钥身份验证从外部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库是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。