共用方式為


如何使用「MaxStartups」和「MaxSessions」來排解OpenSSH連線問題

本指南說明如何使用 MaxStartupsMaxSessions 參數來限制用戶端連線至 OpenSSH 伺服器服務。 這些設定可協助您排除連線問題,並在高負載環境中管理未經驗證和已驗證的 SSH 會話。

癥狀

您可以使用 MaxStartupsMaxSessions 來解決下列類型的症狀。

  • 症狀 1:用戶端無法連線到 OpenSSH 伺服器服務並建立工作階段。 此外,您可能會收到下列錯誤訊息:

    • 連線被對等端重置
    • 超過最大啟動次數
    • 談判失敗
  • 症狀 2:在支援工作階段多工 (每個連線多個工作階段) 的環境中,用戶端會連線並進行驗證。 不過,伺服器會中斷連線。

原因

症狀 1 表示有太多用戶端應用程式同時連線到 OpenSSH 伺服器服務。

症狀 2 僅限於多工複用環境。 這表示 OpenSSH 伺服器服務無法支援用戶端正在使用的會話數目。 設定後可能會發生此症狀MaxStartups

如何使用參數

MaxStartupsMaxSessions 是 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 參數定義了 OpenSSH Server 服務允許每個網路連線開啟的 shell、登入或子系統(例如 sftp)會話的數量。 將 MaxSessions 設定為 1 有效停用會話多工。 將其設定為 0 可以防止所有 shell、登入及子系統會話,但允許端口轉發。 預設值是 10

如何設定連線參數

若要修改 Windows OpenSSH 伺服器服務的參數,請修改sshd_config檔案,然後重新啟動 OpenSSH 伺服器服務。 若要這樣做,請遵循下列步驟:

  1. 使用系統管理員層級帳戶,開啟文字編輯器,然後開啟 \ssh\sshd_config%ProgramData%。 這些設定的預設文字應類似下列摘錄:

    #MaxStartups 10
    
    #MaxSessions 10
    

    備註

    MaxSessions 通常出現在檔案的 # Authentication 區段內。 MaxStartups 通常出現在檔案稍後的一般選項清單中。

  2. 若要啟用 MaxStartupMaxSessions 和 設定值,請編輯文字,使其類似於下列摘錄:

    
    MaxStartups 20:40:60
    
    MaxSessions 15
    

    備註

    在此命令中, 20:40:6015 是範例值。 使用適合您環境的值。

  3. 儲存並關閉sshd_config檔案。

  4. 若要驗證設定,請開啟 Windows PowerShell 命令提示字元視窗,然後執行下列命令:

    sshd -t
    
  5. 若要重新啟動 OpenSSH 伺服器服務,請開啟 Windows 命令提示字元視窗,然後執行下列命令:

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

服務重新啟動之後,它會使用新的參數值。

詳細資訊

第三方資訊免責聲明

本文提及的協力廠商產品是由與 Microsoft 無關的獨立廠商所製造。 Microsoft對這些產品的性能或可靠性不作明示或暗示的保證。