用户的堡垒机对 fsetstat 回 Failure,收到 fsync@openssh.com(即使宣称支持)就断开整个会话, 所以上传报「Failure: Failure」(.filepart 已写完整),编辑器保存时 SFTP 连接断开。现在: - 上传关闭文件后才按路径 setstat 设修改时间和权限,不再对打开的句柄 fsetstat; - 不再发 fsync@openssh.com; - 覆盖已有文件也不用 posix-rename@openssh.com,一律先把旧文件改名成备份、发布后再删 (不是原子的)。 测试服务器加了堡垒机模式(bastion_server):对 fsetstat 和所有扩展请求断开会话;新上传、 覆盖上传和编辑器保存都要在同一条连接上完成,并保留修改时间。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>