启动与系统组件

使用“MaxStartups”和“MaxSessions”排查 OpenSSH 连接问题 - Windows Server

· 52CE 我爱测

本指南介绍如何使用 MaxStartups 和 MaxSessions 参数来限制与 OpenSSH 服务器服务的客户端连接。 这些设置可帮助你排查连接问题并管理未经身份验证和经过身份验证的 SSH 会话,尤其是在高负载环境中。 症状 可以使用 MaxStartups 和 MaxSessions 解决以下类型的症状。 - 症状 1:客户端无法连接到 OpenSSH 服务器服务并建立会话。 此外,可能会收到以下错误消息: - 连接被远程主机重置 - 已超过

本指南介绍如何使用 MaxStartups 和 MaxSessions 参数来限制与 OpenSSH 服务器服务的客户端连接。 这些设置可帮助你排查连接问题并管理未经身份验证和经过身份验证的 SSH 会话,尤其是在高负载环境中。

症状

可以使用 MaxStartups 和 MaxSessions 解决以下类型的症状。

  • 症状 1:客户端无法连接到 OpenSSH 服务器服务并建立会话。 此外,可能会收到以下错误消息:

    • 连接被远程主机重置
    • 已超过 MaxStartups
    • 协商失败
  • 症状 2:在支持会话复用(每个连接多个会话)的环境中,客户端连接并进行身份验证。 但是,服务器会删除连接。

原因

症状 1 表示客户端应用程序同时连接到 OpenSSH 服务器服务过多。

症状 2 仅发生在多路复用环境中。 它表示 OpenSSH 服务器服务不支持客户端正在使用的每个连接的会话数。 配置后MaxStartups可能会出现此症状。

如何使用参数

MaxStartups并且 MaxSessions 是sshd_config文件中的参数。 以下各节介绍了它们的运行方式。

MaxStartups

该 MaxStartups 参数定义 OpenSSH 服务器服务可以管理的并发未经身份验证的连接数。 此设置在支持多个并行 SSH 连接的服务器上特别有用,包括跳转主机和预配服务器(例如使用 Ansible 的服务器)。 它还适用于高负载环境或在暴力攻击期间。

该值是一组由冒号分隔的三个整数,采用格式 Start:Rate:Full。 整数表示以下值:

  • 开始:OpenSSH 服务器服务在开始删除连接之前支持的未经身份验证的连接数。
  • 速率:OpenSSH 服务器服务删除连接的概率。 只要并发会话数低于 Start 值,服务将 Rate忽略。 但是,当并发连接数超过 Start时,每个附加连接都有 Rate 下降的百分比概率。
  • 完整:当并发连接数超过 Full时,服务将删除所有其他连接。

例如,请考虑一个使用配置 MaxStartups 20:40:60 的系统。 OpenSSH 服务器服务管理连接,如下所示:

  • 该服务维护前 20 个并发未经身份验证的连接。
  • 从第 21 次连接尝试开始,服务器删除新连接尝试的可能性为 40%。
  • 服务达到 60 个并发未经身份验证的连接后,服务器将拒绝所有进一步的连接尝试。

MaxSessions

该 MaxSessions 参数定义了 OpenSSH Server 服务对于每个网络连接允许的打开的 shell、登录或子系统(例如 sftp)会话的数量。 将MaxSessions设置为1可以有效地禁用会话复用。 将其设置为 0 阻止所有 shell、登录和子系统会话,但允许端口转发。 默认值为 10。

如何设置连接参数

若要修改 Windows OpenSSH Server 服务的参数,请修改sshd_config文件,然后重启 OpenSSH 服务器服务。 为此,请执行以下步骤:

  1. 使用管理员级帐户打开文本编辑器,然后打开 %ProgramData%\ssh\sshd_config。 这些设置的默认文本应类似于以下摘录:

    #MaxStartups 10
    
    #MaxSessions 10
    

    注释

    MaxSessions 通常出现在文件的 # Authentication 节。 MaxStartups 通常在文件后面的常规选项列表中显示。

  2. 若要启用 MaxStartup 或 MaxSessions 设置值,请编辑文本,使其类似于以下摘录:

    
    MaxStartups 20:40:60
    
    MaxSessions 15
    

    注释

    在此命令中,20:40:60 和 15 是示例值。 使用适合你的环境的值。

  3. 保存并关闭sshd_config文件。

  4. 若要验证配置,请打开 Windows PowerShell 命令提示符窗口,然后运行以下命令:

    sshd -t
    
  5. 若要重启 OpenSSH 服务器服务,请打开 Windows 命令提示符窗口,然后运行以下命令:

    NET STOP "OpenSSH SSH Server" && NET START "OpenSSH SSH Server"
    

服务重启后,它使用新的参数值。

详细信息

第三方信息免责声明

本文讨论的第三方产品由独立于微软的公司制造。 Microsoft对这些产品的性能或可靠性不作任何明示或暗示的保证。

资料来源与适用范围

资料来源
微软官方中文故障文档
适用范围
适用于高负载环境或在暴力攻击期间。
内容语言
中文;命令、路径和错误标识保留技术原文
本地收录日期
2026-10-26
授权说明
CC BY 4.0

正文与所需资源由本站本地存储。查看来源及更新记录 ↗

请按适用版本和实际日志确认原因;本站没有对每一种系统或设备逐项执行文中的操作。