gpt4 book ai didi

java - 无法启动与本地 apache sshd 服务器的 ChannelSftp channel 连接 (java)

转载 作者:行者123 更新时间:2023-12-01 19:50:09 25 4
gpt4 key购买 nike

我正在尝试测试到达 SFTP 服务器的文件。我使用以下代码设置了本地 sshd 服务器

    @Before
public void setUp() throws Exception{
SshServer sshd = SshServer.setUpDefaultServer();
sshd.setKeyPairProvider(new SimpleGeneratorHostKeyProvider());
sshd.setPasswordAuthenticator(new PasswordAuthenticator() {
public boolean authenticate(String username, String password, ServerSession session) {
return true;
}
});
sshd.setPort(22);
sshd.setFileSystemFactory(new FileSystemFactory() {
@Override
public FileSystem createFileSystem(org.apache.sshd.common.session.Session session) throws IOException {
return null;
}
});
sshd.start();
}

我使用 Jsch 作为客户端来尝试连接到该服务器。不幸的是,每当我尝试调用channel.connect()时,我都会收到com.jcraft.jsch.JSchException:无法发送 channel 请求异常。 Jsch 的代码如下所示:

    public void testServer(){
try{
JSch jSch = new JSch();
Session session = jSch.getSession("user", "localhost",22);
Properties configTemp = new Properties();
configTemp.put("StrictHostKeyChecking", "no");
session.setConfig(configTemp);
session.connect();
ChannelSftp channel = (ChannelSftp)session.openChannel("sftp");
channel.connect();
if(channel.isConnected()){
System.out.println("Connected");
}
}
catch (Exception e){
e.printStackTrace();
}

}

任何人都可以帮助解决我做错的事情以及如何解决这个问题吗?谢谢

最佳答案

您必须实现一个子系统工厂,例如:

sshd.setSubsystemFactories(Collections.singletonList(new SftpSubsystemFactory()));

关于java - 无法启动与本地 apache sshd 服务器的 ChannelSftp channel 连接 (java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59093462/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com