【发布时间】: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