首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sftp服务器中的连接被拒绝

sftp服务器中的连接被拒绝
EN

Stack Overflow用户
提问于 2014-10-27 23:46:55
回答 1查看 4.7K关注 0票数 1

我正在尝试使用localhost作为SFTP服务器。我正在使用Java的Jsch库在SSH2中实现SFTP。下面的代码使用sftp将一个文本文件上传到本地计算机上的一个目录。但是我无法连接到localhost。

代码语言:javascript
复制
        import java.io.BufferedInputStream;
        import java.io.BufferedOutputStream;
        import java.io.File;
        import java.io.FileInputStream;
        import java.io.FileOutputStream;
        import java.io.OutputStream;


        import com.jcraft.jsch.Channel;
        import com.jcraft.jsch.ChannelSftp;
        import com.jcraft.jsch.JSch;
        import com.jcraft.jsch.Session;


        public class  Server{

        public Server() {
        }

        public static void main(String[] args) {
        String SFTPHOST = "localhost";
        int    SFTPPORT = 22;
        String SFTPUSER = "root";
        String SFTPPASS ="";
        String SFTPWORKINGDIR = "D:\\Upload";

        Session     session     = null;
        Channel     channel     = null;
        ChannelSftp channelSftp = null;

        try{
                    JSch jsch = new JSch();
                    session = jsch.getSession(SFTPUSER,SFTPHOST,SFTPPORT);
                    session.setPassword(SFTPPASS);
                    java.util.Properties config = new java.util.Properties();
                    config.put("StrictHostKeyChecking", "no");
                    session.setConfig(config);
                    session.connect();
                    channel = session.openChannel("sftp");
                    channel.connect();
                    channelSftp = (ChannelSftp)channel;
                    channelSftp.cd(SFTPWORKINGDIR);
                    File f = new File("trial.txt");
                    channelSftp.put(new FileInputStream(f), f.getName());
        }catch(Exception ex){
        ex.printStackTrace();
        }

        }

        }
EN

回答 1

Stack Overflow用户

发布于 2014-10-28 21:18:33

“连接被拒绝”意味着在您尝试连接的IP地址和端口上没有侦听连接的进程。在这种情况下,最有可能的解释是您的SSH服务器进程没有运行,或者它可能被配置为侦听端口22以外的其他端口。

看起来这是一个Windows系统?如果是这样的话,您可以检查任务管理器,看看是否有sshd程序的副本在运行。要查看端口22上是否有侦听,请打开命令行窗口并运行netstat -an。然后查找如下所示的行:

代码语言:javascript
复制
  TCP    0.0.0.0:22            0.0.0.0:0              LISTENING
                 ^^-- Listening on port 22

如果sshd没有运行,则需要启动它。如果它正在运行,但是端口22上没有侦听任何东西,那么您应该检查sshd的配置文件。

如果你需要更多启动sshd的帮助,你应该在https://superuser.com/上询问。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26591403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档