使用公钥认证和代理服务器在SFTP服务器上获取文件的Java程序
在我们的项目中,我们需要使用公钥身份验证从外部SFTP服务器获取文件。我在网上搜索过,但没有提到代理服务器路由的例子,因为根据公司的政策,这是必需的 我们在Unix服务器上使用以下命令来获取文件,但我们希望使用java程序来实现此功能使用公钥认证和代理服务器在SFTP服务器上获取文件的Java程序,java,ssh,proxy,sftp,public-key-encryption,Java,Ssh,Proxy,Sftp,Public Key Encryption,在我们的项目中,我们需要使用公钥身份验证从外部SFTP服务器获取文件。我在网上搜索过,但没有提到代理服务器路由的例子,因为根据公司的政策,这是必需的 我们在Unix服务器上使用以下命令来获取文件,但我们希望使用java程序来实现此功能 sftp -v -oIdentityFile=/home/intusr/.ssh/id_rsa -oProxyCommand="/usr/bin/corkscrew 11.555.66.22 4444 %h %p" user@transmit.com:stage/
sftp -v -oIdentityFile=/home/intusr/.ssh/id_rsa -oProxyCommand="/usr/bin/corkscrew 11.555.66.22 4444 %h %p" user@transmit.com:stage/filedir/
谢谢你的帮助。到目前为止,我找到的最好的资源是最常用的Java SSH库是,它支持公钥身份验证和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();
有关下载文件的信息,请参阅:您也必须这样做。最常用的Java SSH库是,它支持公钥身份验证和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();
有关下载文件的信息,请参阅:你也必须这样做。谢谢你,马丁。我们没有代理服务器的任何用户名/密码。这是强制性的吗?不,不是,跳过
setUserPasswd
调用即可。嗨,马丁,我在编译下面的语句时遇到了问题。它说“找不到符号”通过添加“import com.jcraft.jsch.ProxyHTTP”解决了这个错误;代码正在运行,谢谢Martin的帮助!!谢谢你,马丁。我们没有代理服务器的任何用户名/密码。这是强制性的吗?不,不是,跳过setUserPasswd
调用即可。嗨,马丁,我在编译下面的语句时遇到了问题。它说“找不到符号”通过添加“import com.jcraft.jsch.ProxyHTTP”解决了这个错误;代码正在运行,谢谢Martin的帮助!!