나는 이 질문에 가능한 한 구체적으로 대답하려고 노력할 것이며, 내 언어가 명확하지 않은 경우 양해해 주시기 바랍니다.
Unix 시스템 "A"가 있고 거기에서 다른 서버로 병렬로 SSH를 통해 일부 작업을 수행하고 싶다고 가정해 보겠습니다. 서버 "A"에 허용되는 병렬 SSH 수를 어떻게 알 수 있나요?
답변1
특정 사례의 경우 몇 가지 요소(하드웨어 및 운영 체제)에 따라 달라집니다. 컴퓨터의 설정을
확인해야 합니다 (아키텍처에 대해서는 아무 말도 하지 않았습니다). 예를 들어 매개변수의 한계를 확인해보세요 ( 심지어 열린 소켓 수와도 관련이 있습니다). 이는 사용자에 대해 설정된 제한입니다. Ubuntu 시스템을 사용하는 경우 이 매개변수에 대한 시스템 전체 설정을 볼 수 있습니다.limits
ulimit -a
open files
/proc/sys/fs/file-max
시스템에서 설정한 제한과 하드웨어 제한(RAM 포화도 등) 외에 SSH 클라이언트에서 설정한 명시적인 제한은 없습니다(내가 아는 한).
클라이언트 시스템에 필요한 제한을 구성했지만 동일한 서버에 대한 추가 SSH 연결을 설정할 수 없는 경우 서버 측에서 다음 매개변수를 사용자 정의해 보십시오 sshd
.
/etc/ssh/sshd_config
구성 파일에서 허용되는 병렬 세션을 사용자 정의하여 필요한 만큼 많은 세션을 사용할 수 있습니다.
다음 매개변수가 트릭을 수행해야 합니다.
최대 세션 수
네트워크 연결당 허용되는 오픈 셸, 로그인 또는 하위 시스템(예: SFTP) 세션의 최대 수를 지정합니다. 연결 재사용을 지원하는 클라이언트는 여러 세션을 설정할 수 있습니다. MaxSessions를 1로 설정하면 세션 재사용이 효과적으로 비활성화되고, 0으로 설정하면 모든 셸, 로그인 및 하위 시스템 세션이 차단되지만 전달은 허용됩니다. 기본값은 10입니다.
답변2
특별한 제한사항은 없습니다 ssh
. 시스템 "A"에 허용되는 총 프로세스 수에는 제한이 있을 수 있지만 내 경험상 이 경우는 드뭅니다.