(클라이언트에서) 연결이 끊어진 후 (서버에서) 비활성 SSH 프로세스를 제거합니다.

(클라이언트에서) 연결이 끊어진 후 (서버에서) 비활성 SSH 프로세스를 제거합니다.

포트 터널링을 위해 클라이언트에서 다음 명령을 사용하고 있습니다.

autossh -M 20000 -4 -N -f -R 18822:localhost:22 <user>@<vps-ip>

때때로 클라이언트의 연결이 일시적으로 끊어지거나 전원이 꺼지고, 다시 온라인 상태가 되어도 SSH 프로세스는 VPS에서 계속 활성화됩니다. 클라이언트가 다시 연결되면 새 프로세스가 나타나지만 포트 전달이 작동하지 않습니다(첫 번째 프로세스가 여전히 포트를 점유하고 있다고 가정합니다).

다음과 같이 변경하면 이 문제를 해결할 수 있을 것 같습니다.

VPS 끝에 추가 /etc/ssh/sshd_config:

ClientAliveInterval 90
ClientAliveCountMax 2

클라이언트 끝에 추가하십시오 /etc/ssh/ssh_config.

ServerAliveInterval 90
ServerAliveCountMax 2

~에서이 답변이러한 기능에 대한 나의 일반적인 이해뿐만 아니라, 나는 이것이 시도할 것이라는 인상을 받았습니다.2빈 패킷을 보내는 횟수90초 후에 실패하면 180초 후에 "깨진 파이프"로 인해 연결이 종료되고 VPS의 SSH 프로세스가 종료되며 클라이언트는 포트를 다시 사용할 수 있습니다.

그러나 클라이언트가 종료된 지 20분이 지났고 VPS에는 여전히 SSH 프로세스가 포트를 점유하고 있습니다. (고쳐 쓰다:이 과정은 약 25~30분 후에 사라집니다.)

위의 이해가 잘못 되었습니까? 클라이언트가 더 이상 응답하지 않으면 연결이 아직 존재하는지 확인하고 닫으려면 어떻게 해야 합니까?

관련 정보