Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用公钥认证和代理服务器在SFTP服务器上获取文件的Java程序_Java_Ssh_Proxy_Sftp_Public Key Encryption - Fatal编程技术网

使用公钥认证和代理服务器在SFTP服务器上获取文件的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服务器获取文件。我在网上搜索过,但没有提到代理服务器路由的例子,因为根据公司的政策,这是必需的

我们在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/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的帮助!!