Java 获取UnknownHostKey异常,尽管在JSch中设置了严格的主机检查
在使用java代码连接会话时,执行下面的代码时遇到问题。请尝试所有更改,也可以尝试使用SFTPFileSystemConfigurationBuilder,但在这种情况下,我无法设置代理服务器用户名和密码Java 获取UnknownHostKey异常,尽管在JSch中设置了严格的主机检查,java,proxy,sftp,jsch,Java,Proxy,Sftp,Jsch,在使用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 J
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()
你的问题与代理无关 没有
严格的主机检查指令。这里有strichHostKeyChecking
但是请注意,使用此指令会导致任何安全漏洞。确保您了解自己在做什么。您是从哪里获得严格的主机检查的?