끊어진 SSH 연결을 자동으로 닫는 방법은 무엇입니까?

끊어진 SSH 연결을 자동으로 닫는 방법은 무엇입니까?

서버를 원격으로 사용할 때 네트워크 문제로 인해 SSH 연결이 끊어지는 경우가 있습니다. 서버에 다시 연결하면 연결이 끊어진 세션이 계속 열려 있습니다. 내가 달릴 때 나는 그들을 볼 수 있다 w.

PID를 사용하여 해당 세션을 종료할 수 있다는 것을 알고 있지만 가능하다면 삭제된 세션을 자동으로 종료하고 싶습니다.

어떻게 해야 하나요?

답변1

서버의 sshd 구성을 활성화하거나 활성화하는 등 SSH 유지 메시지 중 하나를 활성화합니다 TCPKeepAlive.ClientAliveInterval

TCPKeepAlive마찬가지로 클라이언트 구성에서는 및 를 사용할 수 있습니다 ServerAliveInterval.

TCPKeepAliveKeepAlive이전 버전의 OpenSSH를 사용하는 경우 이전 버전은 다음과 같습니다.

TCP keepalive는 SSH가 구축한 암호화된 터널 외부에서 작동하는 TCP의 기능입니다. 예를 들어, 실제로는 그렇지 않은데도 연결이 아직 열려 있는 것처럼 가장하도록 속일 수 있습니다.

ClientAlive/ServerAlive는 암호화된 터널 내에서 실행되므로 스푸핑될 수 없습니다(그러나 나는 이것이 새로운 옵션이며 물론 CPU 시간이 더 많이 걸릴 것이라고 믿습니다).

답변2

TCP 시간 초과에 도달하거나 KeepAlive 메시지가 이전 연결로부터 어떤 응답도 받지 못하면 즉시 닫혀야 합니다. 걱정할 것이 없습니다.

그렇지 않은 경우 openssh업스트림에 보고해야 할 버그가 있습니다.

관련 정보