![Windows OpenSSH 出现“获取致命错误:从 SFTP 服务器收到意外的文件结束” - 最新 OpenSSH 版本的问题](https://linux22.com/image/775969/Windows%20OpenSSH%20%E5%87%BA%E7%8E%B0%E2%80%9C%E8%8E%B7%E5%8F%96%E8%87%B4%E5%91%BD%E9%94%99%E8%AF%AF%EF%BC%9A%E4%BB%8E%20SFTP%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%94%B6%E5%88%B0%E6%84%8F%E5%A4%96%E7%9A%84%E6%96%87%E4%BB%B6%E7%BB%93%E6%9D%9F%E2%80%9D%20-%20%E6%9C%80%E6%96%B0%20OpenSSH%20%E7%89%88%E6%9C%AC%E7%9A%84%E9%97%AE%E9%A2%98.png)
编辑:嗯,发现了(至少一个)问题。我们设置了一个新的虚拟机并安装了最新版本的适用于 Windows 的 OpenSSH 服务器(v8.9),但它也无法正常运行。它仍在运行的服务器运行的是旧版本 v8.6。我正在确认这是问题所在,并查看我做错了什么导致 8.9 失败。
我一直在使用 OpenSSH for Windows 便携式工具将一些 Windows Server 2012 VM 设置为 SFTP 服务器。我成功完成了大约六次,但遇到了一个问题,我收到错误“严重错误:从 SFTP 服务器收到意外的文件结束”。奇怪的是,这是在基于相同 VM 映像构建的服务器上,尽管比它运行的服务器更旧。这让我认为这是一个奇怪的权限问题。
除了我省略的端口号之外,这些是我对 c:\programdata\ssh\sshd_config 文件所做的自定义更改:
AllowUsers ssh_user
PasswordAuthentication yes
Subsystem sftp internal-sftp
ChrootDirectory C:/Output/
SyslogFacility LOCAL0
LogLevel Debug3
我使用 psftp 进行连接,连接成功,但随后出现错误。以下是详细 psftp 命令给出的结果(减去一些敏感信息):
Looking up host "[REDACTED]" for SSH connection
Connecting to [REDACTED] port [REDACTED]
We claim version: SSH-2.0-PuTTY_Release_0.76
Connected to [REDACTED]
Remote version: SSH-2.0-OpenSSH_for_Windows_8.9
Using SSH protocol version 2
No GSSAPI security context available
Doing ECDH key exchange with curve Curve25519 and hash SHA-256 (unaccelerated)
Server also has ecdsa-sha2-nistp256/rsa-sha2-512/rsa-sha2-256 host keys, but we
don't know any of them
Host key fingerprint is:
ssh-ed25519 255 SHA256:QOfqSphtid9jnXb2MWHvPS/6AerXYPQ9YUdhgORny5I
Initialised AES-256 SDCTR (AES-NI accelerated) outbound encryption
Initialised HMAC-SHA-256 (unaccelerated) outbound MAC algorithm
Initialised AES-256 SDCTR (AES-NI accelerated) inbound encryption
Initialised HMAC-SHA-256 (unaccelerated) inbound MAC algorithm
Using username "ssh_user".
Attempting keyboard-interactive authentication
Server refused keyboard-interactive authentication
Sent password
Access granted
Opening main session channel
Opened main channel
Started a shell/command
Connected to [REDACTED]
FATAL ERROR: Received unexpected end-of-file from SFTP server
我有一个来自 ssh 服务器的日志文件,但 StackExchange 认为它是垃圾邮件。它大约有 300 行。
我有点搞不清楚到底是什么原因造成的。其他没有这个问题的虚拟机上的配置文件是相同的。我已授予 ssh 用户帐户对 C:\Output 以及 programdata\ssh 文件夹的完全访问权限(尽管它不需要后者)。我还运行了 OpenSSH 安装附带的权限修复 Powershell 脚本,但它们并没有什么作用,重新安装 OpenSSH 也没有用。
答案1
我遇到过同样的问题,问题出现的原因是密码在 90 天后过期,但日志没有写这个...我通过在同一个“passwd user”上重置密码并通过“passwd -u user”解锁(用目标用户替换用户)来解决这个问题。
请给我反馈。
法语:我也遇到了同样的问题,我需要使用相同的“passwd user”和“passwd -u user”重新初始化密码以解密/解锁。
答案2
遇到了同样的问题,结果服务器找不到配置文件中指定的 sftp-server.exe。
在 C:\ProgramData\ssh\sshd_config 中使用以下行解决了该问题
Subsystem sftp C:\Program Files\OpenSSH\sftp-server.exe