Windows 上使用密钥验证的 OpenSSH

Windows 上使用密钥验证的 OpenSSH

我正在尝试在 Windows Server 2019 上的 OpenSSH 上运行基于密钥的身份验证。当前,我们根据 Microsoft 文档安装了 Open SSH,并且可以使用我们的 AD 登录名使用密码验证进行登录,但是当按照基于密钥的身份验证的说明进行操作时,以下错误开始弹出。

在客户端我们得到以下信息:

client_loop: send disconnect: Connection reset

谷歌搜索结果似乎认为这是一种超时,但它在我们收到提示之前就瞬间发生了。

在主机端,我们在事件查看器中看到以下内容:

sshd: fatal: fork of unprivileged child failed

谷歌搜索结果显示该流程已被用尽,但在我们的环境下这似乎不太可能。

我们的设置是按照文档找到的标准这里,对 sshd 配置所做的唯一更改是启用密钥身份验证,其他一切都是安装后的默认设置。很高兴提供任何其他信息,不确定还有什么可能相关。

编辑:做了一些深入挖掘,并通过详细的输出看起来公钥已被接受,但它在之后立即关闭连接:

Authenticated to <ip> ([<ip>]:22).
debug1: channel 0: new [client-session]
debug1: Requesting [email protected]
debug1: Entering interactive session.
debug1: pledge: network
debug1: ENABLE_VIRTUAL_TERMINAL_INPUT is supported. Reading the VTSequence from console
debug1: ENABLE_VIRTUAL_TERMINAL_PROCESSING is supported. Console supports the ansi parsing
client_loop: send disconnect: Connection reset

即使我没有提供带有 -i 的密钥,它现在也会尝试基于密钥的身份验证,这很奇怪。

答案1

我不知道这是否适用,但当我们为 Windows 设置 OpenSSH 时,微软的文档和开箱即用的功能不起作用。

我们使用这些来源和说明来正确设置它:

关于配置我们的 sshd_config 包含以下内容:

AuthorizedKeysFile  .ssh/authorized_keys
Subsystem   sftp    sftp-server.exe
Match Group administrators
       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

sftp 设置,因为我们主要用它来移动文件(请不要问为什么)。

相关内容