【问题标题】:Can not connect to java SFTP server running on localhost Mac OS v10.15.5无法连接到在 localhost Mac OS v10.15.5 上运行的 java SFTP 服务器
【发布时间】:2020-06-27 07:38:10
【问题描述】:

我已经使用以下代码启动了 java sftp 服务器:

这里是maven依赖:

    <dependencies>
        <dependency>
            <groupId>org.apache.mina</groupId>
            <artifactId>mina-core</artifactId>
            <version>1.1.7</version>
        </dependency>
        <dependency>
            <groupId>org.apache.sshd</groupId>
            <artifactId>sshd-core</artifactId>
            <version>1.7.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.10</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.30</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-slf4j-impl</artifactId>
            <version>2.1</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

这里是源代码:

import org.apache.sshd.server.SshServer;
import org.apache.sshd.server.keyprovider.SimpleGeneratorHostKeyProvider;
import org.apache.sshd.server.subsystem.sftp.SftpSubsystemFactory;


import java.io.File;
import java.io.IOException;
import java.util.Collections;

public class Main {
    public static void main(String[] args) throws IOException {
        SshServer sshd = SshServer.setUpDefaultServer();
        sshd.setPort(22);
        sshd.setKeyPairProvider(new SimpleGeneratorHostKeyProvider(new File("host.ser").toPath()));
        sshd.setSubsystemFactories(Collections.singletonList(new SftpSubsystemFactory()));
        sshd.setPasswordAuthenticator((username, password, session) -> username.equals("test") && password.equals("password"));
        sshd.start();
    }
}

然后我去同一台机器的终端,尝试连接到正在运行的sftp服务器:

sftp test@127.0.0.1

但是什么也没发生。正在等待连接。

我也尝试了以下命令:

sftp test@localhost

同时,当我尝试远程登录到端口 22 时,我得到以下信息:

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

【问题讨论】:

    标签: java macos server connection sftp


    【解决方案1】:

    ssh-keygen -R 127.0.0.1 解决了我的问题

    【讨论】:

    • 这没什么意义。 ssh-keygen 不会对“telnet to the port 22”产生任何影响
    • 我的意思是在 ssh-keygen 之后我能够“sftp test@127.0.0.1”
    • 如果连端口都连接不上,ssh-keygen 也帮不上忙。
    猜你喜欢
    • 1970-01-01
    • 2014-07-21
    • 2021-02-17
    • 1970-01-01
    • 1970-01-01
    • 2012-11-03
    • 2011-06-02
    • 2020-05-18
    相关资源
    最近更新 更多