Java SFTP连接失败(无密码服务器)

Java SFTP连接失败(无密码服务器),java,ssh,sftp,jsch,sshd,Java,Ssh,Sftp,Jsch,Sshd,我已经配置了一个无密码的SFTP服务器。 我想使用带有用户名和密码的jsch(JAVA)库来连接它。 我一直在使用以下代码行:- session.setConfig(“PreferredAuthentications”, “密码,基于主机,公钥”) JAVA中的这一行会覆盖SSH配置(无密码)的设置吗 请注意,SFTP服务器使用终端命令SFTP连接良好,没有提示密码。否。它不会覆盖服务器SSH配置 这行代码只会告诉ssh客户端(即您的代码)在尝试连接到SFTP服务器时要尝试什么类型的身份验证方法

我已经配置了一个无密码的SFTP服务器。 我想使用带有用户名和密码的jsch(JAVA)库来连接它。 我一直在使用以下代码行:-

session.setConfig(“PreferredAuthentications”, “密码,基于主机,公钥”)

JAVA中的这一行会覆盖SSH配置(无密码)的设置吗


请注意,SFTP服务器使用终端命令SFTP连接良好,没有提示密码。

否。它不会覆盖服务器SSH配置

这行代码只会告诉ssh客户端(即您的代码)在尝试连接到SFTP服务器时要尝试什么类型的身份验证方法

客户端将尝试服务器也支持的第一种方法,并尝试使用此方法创建连接

这在本文中得到了很好的解释

当然,您必须将SSH服务器配置为允许密码身份验证。为此,应在以下位置打开ssh_配置文件:

/etc/ssh/ssh_config
并取消对下一行的注释

PasswordAuthentication yes

使用Jsch库可以实现如下所述

初始化Jsch并从中获取
com.jcraft.Jsch.Session
对象,然后在此
Session
对象中设置
UserInfo

使用超时值取消会话连接,然后打开通道传输文件

    if(null != session && !session.isConnected()){
            session.connect(10000); 
    }

   ChannelSftp sftpChannel = (ChannelSftp) 
   session.openChannel(UIConstants.SFTP);
   sftpChannel.connect();
您需要ChannelSftp进行文件传输


关于Jsch库的更多详细信息

什么是“无密码服务器”?你这是什么意思?+向我们展示一个JSch日志文件,以及
ssh-v…
输出(都运行在同一台机器上,连接到同一台服务器)。这如何回答这个问题?