尝试将文件(> = 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();
}
}
}
我无法确定为什么这种情况只发生在这个客户端-服务器对上。非常感谢任何帮助。谢谢。