在使用java代码连接会话时在代码下执行时获取问题。尝试所有更改也尝试使用SFTPFileSystemConfigurationBuilder,但从那个场景我无法设置代理服务器用户名和密码。
import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.ProxySOCKS5;
JSch js=new JSch();
ProxySOCKS5 ph=new ProxySOCKS5(proxyServer,proxyPort);
ph.setUserPasswd(proxyUN, proxyPass);
com.jcraft.jsch.Session sessi=js.getSession(sftpUN, SFTPURL,SFTPPort);
sessi.setPassword(sftpPassword);
sessi.setProxy(ph);
sessi.setConfig("STRICT_HOST_CHECKING", "no");
//Getting Error
sessi.connect();
/*
com.jcraft.jsch.JSchException: UnknownHostKey: proxyServer. RSA key fingerprint is XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX......
at com.jcraft.jsch.Session.checkHost(Session.java:797)
at com.jcraft.jsch.Session.connect(Session.java:342)
at com.jcraft.jsch.Session.connect(Session.java:183)
*/
Channel ch=sessi.openChannel("sftp");
ch.connect();
ChannelSftp sftpCh= (ChannelSftp) ch;
sftpCh.cd(remoteDirectory);
File fileToTransfer= new File(localDirectory);
sftpCh.put(new FileInputStream(fileToTransfer),"1.txt");
sftpCh.disconnect();
ch.disconnect();
sessi.disconnect()
答案 0 :(得分:0)
您的问题与代理无关。
没有STRICT_HOST_CHECKING
指令。有StrictHostKeyChecking
。
虽然请注意您使用此指令丢失了任何安全性。确保你了解自己在做什么。