将文件上传到 apache sshd sftp 服务器时出站消息太长

将文件上传到 apache sshd sftp 服务器时出站消息太长

尝试将文件(> = 500KB)从 Linux sftp 客户端上传到使用 apache sshd 实现的 sftp 服务器时抛出以下错误。

发出的消息太长 262197

同一台服务器与文件 zilla 一起工作,也可以使用此客户端将大文件上传到其他 sftp 服务器。

根据代码,如果输出缓冲区大于 256kB,则会生成错误消息。

我发现了关于“接收消息太长”消息的多个引用,但没有发现关于“发送消息太长”的引用。

我正在使用以下框架使用 mina-sshd 2.10.0 创建 sftp 服务器,如https://stackoverflow.com/questions/76384961/无法连接到apache-mina-sshd-server/76385001

public class Main {
    public static void main(String[] args) {

        SshServer sshd = SshServer.setUpDefaultServer();
        sshd.setPort(22);
        sshd.setKeyPairProvider(new SimpleGeneratorHostKeyProvider(Paths.get("hostkey.ser")));

        sshd.setShellFactory(new ProcessShellFactory("/bin/sh", "-i", "-l"));
        sshd.setCommandFactory(new ScpCommandFactory());
        sshd.setSubsystemFactories(Collections.singletonList(builder.build()));

        sshd.setPasswordAuthenticator(new MyPasswordAuthenticator());

        try {
            System.err.println("Starting SSHD on port 22");
            sshd.start();
            Thread.sleep(Long.MAX_VALUE);
            System.err.println("Exiting after a very (very very) long time");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

我无法确定为什么这种情况只发生在这个客户端-服务器对上。非常感谢任何帮助。谢谢。

相关内容