我会尽量具体地回答这个问题,如果不清楚,请原谅我的语言。
假设我有一个 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”上允许的进程总数可能有限制,但根据我的经验,这种情况很少见