
我會盡量具體地回答這個問題,如果不清楚,請原諒我的語言。
假設我有一個 Unix 系統“A”,我想從那裡並行地 ssh 到其他一些伺服器並執行一些任務。我如何知道“A”伺服器上允許有多少個並行 ssh?
答案1
對於您的特定情況,這取決於一些因素(硬體和作業系統)。
你必須檢查limits
你機器上的設定(你沒有說任何關於架構的事情)。
嘗試檢查ulimit -a
並查看例如open files
參數的限制(它甚至與打開的套接字的數量相關)。
這些是為使用者設定的限制;你可以查看/proc/sys/fs/file-max
(如果你使用的是 Ubuntu 機器)來查看有關該參數的系統範圍設定。
除了系統設定的限制和硬體的限制(RAM 飽和度等)之外,SSH 用戶端沒有設定明確的限制(據我所知)。
如果您在用戶端電腦上配置了所需的限制,但無法與相同伺服器建立更多 SSH 連接,請嘗試在伺服器端自訂下列參數sshd
,
/etc/ssh/sshd_config
您可以根據需要使用任意數量的會話,從設定檔中自訂允許的並行會話。
以下參數應該可以解決問題:
最大會話數
指定每個網路連線允許的開啟 shell、登入或子系統(例如 sftp)會話的最大數量。支援連線複用的用戶端可以建立多個會話。將 MaxSessions 設為 1 將有效停用會話復用,而將其設為 0 將阻止所有 shell、登入和子系統會話,同時仍允許轉送。預設值為 10。
答案2
沒有專門針對 的限制ssh
。系統「A」上允許的進程總數可能有限制,但根據我的經驗,這種情況很少見