OpenSSH의 기본 유휴 시간 제한은 무엇입니까?

OpenSSH의 기본 유휴 시간 제한은 무엇입니까?

이 간단한 질문에 대한 답을 찾을 수 없는 것 같습니다. 규정 준수 문서가 필요합니다.

CentOS 6.5(OpenSSH 5.3p1-94.el6)의 기본 설치에서 사용자의 SSH 세션은 비활성 후 얼마 후에 종료됩니까? 유휴 시간 초과를 늘리기 위해 다음을 설정할 수 있다고 생각하지만 기본적으로 주석 처리되어 있습니다.

$ grep -i alive /etc/ssh/sshd_config
#TCPKeepAlive yes
#ClientAliveInterval 0
#ClientAliveCountMax 3

또한 현재 설정 목록을 덤프하는 명령이 있습니까 sshd? 나는 아무것도 보지 못했다 man sshd.

답변1

의 주석 행은 sshd_config일반적으로 기본값을 표시합니다. 이는 귀하의 질문에 있는 모든 줄에 해당됩니다. 당신은 할 수 있습니다sshd_config맨페이지. 관련 스니펫은 다음과 같습니다.

TCPKeepAlive

      시스템이 TCP 연결 유지 메시지를 상대방에게 보내야 하는지 여부를 지정합니다. 이러한 메시지가 전송되면 연결이 중단되거나 컴퓨터 중 하나가 충돌하는 것을 올바르게 알 수 있습니다. 그러나 이는 라우팅이 일시적으로 중단되면 연결이 중단되어 일부 사람들이 불편함을 느낄 수 있음을 의미합니다. 반면에 TCP 연결 유지 메시지가 전송되지 않으면 세션이 서버에서 무기한 중단되어 "유령" 사용자가 남고 서버 리소스를 소비할 수 있습니다.

      기본값은 "yes"입니다(TCP 연결 유지 메시지 전송). 네트워크가 실패하거나 클라이언트 호스트가 충돌하는 경우 서버에서 이를 알립니다. 이렇게 하면 무한 정지 세션이 방지됩니다.

      TCP keepalive 메시지를 비활성화하려면 이 값을 "no"로 설정해야 합니다.

      이 옵션은 이전에 로 알려져 있었습니다 KeepAlive.

ClientAliveCountMax

      메시지 없이 보낼 수 있는 클라이언트 활성 메시지 수(아래 참조)를 설정합니다.SSHD(8)클라이언트로부터 반환된 메시지를 받습니다. 클라이언트 활동 메시지를 보내는 동안 이 임계값에 도달하면 sshd는 클라이언트 연결을 끊고 세션을 종료합니다. 클라이언트 활동 메시지의 사용은 다음과 관련이 있다는 점에 유의해야 합니다.TCPKeepAlive (다음과 같은)(이상). 클라이언트 활동 메시지는 스푸핑될 수 없도록 암호화된 채널을 통해 전송됩니다. TCP keepalive 옵션이 활성화되었습니다.TCPKeepAlive속일 수 있습니다. 클라이언트 측 활성 메커니즘은 클라이언트나 서버가 연결이 비활성화되는 시기를 알아야 할 때 유용합니다.

      기본값은 3입니다. 만약에ClientAliveInterval(아래 참조)은 15로 설정됩니다.ClientAliveCountMax기본값을 그대로 두면 응답하지 않는 SSH 클라이언트는 약 45초 후에 연결이 끊어집니다. 이 옵션은 프로토콜 버전 2에서만 사용할 수 있습니다.

ClientAliveInterval

      클라이언트로부터 데이터가 수신되지 않는 경우 시간 초과 간격(초)을 설정합니다.SSHD(8)클라이언트로부터 응답을 요청하기 위해 암호화된 채널을 통해 메시지가 전송됩니다. 기본값은 0이며, 이는 이러한 메시지가 클라이언트에 전송되지 않음을 의미합니다. 이 옵션은 프로토콜 버전 2에서만 사용할 수 있습니다.

답변2

OpenSSH는 일정 기간 동안 유휴 상태였던 셸 세션을 종료하지 않습니다. 이는 OpenSSH가 수행하는 작업이 아닙니다. 유휴 셸 세션을 종료하는 것은 OpenSSH 구성과 관련이 없습니다.

표시되는 설정은 연결이 끊어졌을 때 시간 초과와 관련이 있으며 원격 호스트의 셸 및 사용자가 수행하거나 수행하지 않는 작업과는 아무 관련이 없습니다.

원격 호스트의 셸은 일정 시간 동안 유휴 상태인 후 종료될 수 있습니다(또는 다른 프로세스에 의해 종료될 수 있음). 이는 서버의 SSH 서비스 및 SSH 클라이언트 구성과 무관합니다.

관련된:


sshd구성을 덤프하려면 "확장 테스트 모드"를 루트로 사용하십시오.

sshd -T

이 내용은 다음과 같이 기록됩니다.sshd(8)수동OpenSSH_7.7, LibreSSL 2.7.2(OpenBSD에서 보기):

-T

확장된 테스트 모드. 구성 파일의 유효성을 확인하고,유효한 구성을 stdout으로 출력하고 종료합니다.. 선택적으로 하나 이상의 옵션을 사용하여 연결 매개변수를 지정하여 일치 규칙을 적용할 수 있습니다 -C.

이 옵션은 2008년 sshdOpenSSH 5.1/5.1p1 에 추가되었습니다.

답변3

클라이언트 또는 서버 측에 대해 SSH Keepalive를 설정할 수 있습니다.

고객

문서:/etc/ssh/ssh_config

콘텐츠:

Host *
ServerAliveInterval XX
ServerAliveCountMax YY

서비스 터미널

문서:/etc/ssh/sshd_config

콘텐츠:

ClientAliveInterval XX
ClientAliveCountMax YY

발췌:http://www.sysadmit.com/2016/02/linux-y-vmware-ssh-evitar-desconexion.html

답변4

SSH에는 더 이상 유휴 시간 제한이 없지만 다음을 사용할 수 있습니다.TMOUT변수대신에. 변조를 방지하기 위해 표시하십시오 readonly.

SSH에는 클라이언트와 서버 모두에 연결 유지 설정이 있지만 유휴 시간 초과는 아닙니다. 응답하지 않는 연결을 자동으로 감지하고 닫는 데 사용할 수 있습니다. 또한 유휴 시간 초과와 반대되는 작업을 수행할 수도 있습니다. 즉, 방화벽이 유휴 연결을 만료하지 않도록 가짜 트래픽을 주기적으로 앞뒤로 보낼 수 있습니다.

이전 버전의 SSH에서는 다음과 ClientAliveCountMax=0같습니다.회의몇 초 동안 활동이 없으면 SSH 세션을 종료하는 것은 ClientAliveIntervalOpenSSH 개발자에 의해 문서화되거나 의도되지 않았습니다.

# Will time out idle sessions, but only if OpenSSH version < 8.2, e.g., CentOS 7
ClientAliveInterval 60
ClientAliveCountMax 0

이것은 sshd의 버그로 간주됩니다.OpenSSH 8.2에서 제거됨. 이제 ClientAliveCountMax=0유휴 세션을 만료시키는 대신 클라이언트 활동을 비활성화하는 것을 의미합니다. 보다오류 보고서.

관련 정보