自 2021 年以来,我一直在使用internal-sftp子系统允许 SFTP 但禁止 SSH,没有任何问题。

我的 ssh_config 文件代码是:

ForceCommand internal-sftp
Subsystem  sftp   sftp-server.exe -d \%
ChrootDirectory \%

PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
AllowUsers sftpuser

一样,在 2024 年 10 月 Windows 更新后的周末,我无法通过 SSH 连接到服务器。

在服务器上,OpenSSH SSH 服务器无法启动,并且我收到 1067 错误。

按照建议,当我删除 \ssh 文件夹时,服务现在可以成功重新启动,但自动创建的新 ssh 文件夹具有默认的 ssh_config 文件代码:

Match Group administrators
       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

当我用上面的代码替换此代码时,internal-sftp我再次收到 1067 错误。

想知道是什么导致该代码与新的更新不兼容。


最佳答案
1

我在类似设置中遇到了同样的问题。我运行后sshd -D -ddd发现配置文件中的 Subsystem 行出现了错误。我有一个文件夹的完整路径,并且用引号括起来。出于某种原因,它不喜欢引号,因此立即启动。

为了确保您拥有我之前尝试过的所有信息:

  • 我卸载了 Windows 功能 OpenSSH
  • 下载最新的 64 位版本
  • 遵循以下说明: https:
    1. 将最新版本的内容提取到 C:\Program Files\
    2. powershell.exe -ExecutionPolicy 绕过 -文件 FixHostFilePermissions.ps1
    3. powershell.exe -ExecutionPolicy 绕过 -File install-sshd.ps1
    4. New-NetFirewallRule -Name sshd -DisplayName’OpenSSH 服务器 (sshd)’-Enabled True -方向入站 -协议 TCP -操作允许 -LocalPort 22
    5. 网络启动 sshd

      • 这是我运行上述命令的地方sshd -D -ddd
    6. 设置服务 sshd -StartupType 自动

希望这对您有所帮助,或者至少为您提供更多信息,以指明正确的方向!