ClientAliveInterval을 설정한 후 로그인 상태를 유지하는 방법은 무엇입니까?

ClientAliveInterval을 설정한 후 로그인 상태를 유지하는 방법은 무엇입니까?

규정 준수를 위해 모든 Debian 서버는 다음 구성을 사용하여 15분 후에 시간 초과되도록 설정됩니다./etc/ssh/sshd_config

ClientAliveInterval 900
ClientAliveCountMax 0

물론, 유휴 시간이 있으면 연결이 끊어질 수 있으므로 이러한 서버에서의 작업은 짜증나고 위험해집니다.

기존 구성을 수정하지 않고도 클라이언트 세션을 활성 상태로 유지할 수 있는 간단한 명령을 찾고 있습니다.

답변1

당신이 팔로우하는 경우보안 기술 구현 가이드현재 상태

ClientAliveInterval                        600
ClientAliveCountMax                        0

이렇게 하면 연결이 끊어지고게으른10분 후 SSH 세션(예: Putty 창)이 시작됩니다.

RHEL 7에서는 rhel-server-7.9-x86_64-dvd.iso 또는 centos에서 새로 설치를 수행할 때 이 두 항목의 기본값은 각각 및 0이므로 3SSH 세션이 자동으로 종료되지 않습니다.

자세한 내용은 다음을 참조하세요.https://stackoverflow.com/questions/71174746/clientaliveinterval-is-not-opening-the-idle-connection

가장 관련성이 높은 것:이 매뉴얼 페이지에서 발췌한 대로 사용자가 유휴 상태일 때는 적용되지 않으며 응답하지 않는 SSH 클라이언트에 적용됩니다. 클라이언트 프로그램이 멈추거나 연결이 끊어지면 클라이언트가 응답하지 않게 됩니다. 인간 사용자가 키보드에서 멀어졌다고 해서 클라이언트가 응답하지 않아야 합니다. SSH 클라이언트는 여전히 서버에서 전송된 패킷을 수신합니다.

클라이언트 측에 있습니다.putty.exe에서, 아래에연결하다그리고연결 제어 옵션가지다Keepalive 사이의 초 수(0은 꺼짐을 의미). 기본값은 0입니다. ClientAliveInterval에서 설정한 숫자보다 작은 숫자 로 설정하세요 sshd_config.

Windows에서 putty.exe를 사용하지 않고 다른 Linux 시스템에서 ssh를 사용하면 클라이언트 ssh가 구성되지만 /etc/ssh/ssh_config해당 항목이 없으며 keepalive 패킷이 자주 전송되는 것으로 알고 있습니다.

참고: Windows에서 putty.exe를 사용하는 경우 기본 keepalive는 0이고 ssh 서버에 ClientAliveInterval이 설정되어 있으면 vi연결이 열려도 연결이 끊어져 결과적으로잃어버린파일은 .swp 파일을 통해 복구됩니다 vi. 또는 출력을 계속 뱉어내는 프로그램을 실행하면 서버 측에서 나오고 SSH 연결이 끊어져 작업이 종료됩니다. 클라이언트에서 계산하고 이끌기 위한 무언가(키 누르기)가 있어야 합니다. 에게살아 있는. 따라서 Windows에서 putty.exe를 사용하면 Linux에서 Linux로 ssh의 경우 매우 간단한 수정이 가능합니다. 클라이언트가 ssh 세션에서 키보드 키를 누르지 않고 연결 해제를 방지하는 방법을 모르겠습니다.

ssh -o업데이트: Linux에서 Linux까지 다양한 옵션을 사용해야 할 것 같습니다 . 자세한 내용은 다음을 참조하세요.SSH에서 tcp-keepalive는 어떻게 작동하나요?

예를 들어: ssh -o ServerAliveInterval=5 -o ServerAliveCountMax=1

/etc/yum.conf와 같은 것에는 gpgcheck=1이 있으며 단지냠 설치 --nogpgcheck :)

답변2

설정을 통해 구성을 비활성화한 것 같습니다.살아있는 최대 클라이언트 수도착하다0. 따라서 1로 설정하면 작업이 수행됩니다.

살아있는 최대 클라이언트 수

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

이것기본값은 3입니다.. 만약에ClientAliveInterval이 15로 설정되었습니다., ClientAliveCountMax가 기본값으로 남아 있으면 응답하지 않는 SSH 클라이언트는45초.

하지만 @TienPhan의 의견에 동의한다는 점을 인정해야 합니다. 서버에 구성을 넣지 않는 것이 가장 좋습니다. 그러나 여전히 사용 사례에 따라 다릅니다. 모든 사용자를 동일한 방식으로 처리해야 하는 경우 서버측 구성이 옵션일 수 있습니다.

답변3

실제로 서버 측에서는 간격을 설정할 필요가 없습니다. 더 많은 것들이 당신을 행복하게 만들지 않을 것입니다.

"ServerAliveInterval"을 사용하고 다음과 같이 ~/.ssh/config 파일에 추가할 수 있습니다.

host *
        ServerAliveInterval 120

참고: 120은 초이므로 원하는 대로 변경할 수 있습니다.

그런 다음 해당 파일의 모든 서버에 영향을 미칩니다. 아니면 별도의 서버에 설정할 수도 있습니다.

관련 정보