StackOverflow를 살펴보니 한동안(2시간?) 패킷이 표시되지 않으면 SSH 연결이 끊어지는 것 같습니다. 또한 파일을 살펴보니 /etc/ssh/ssh_config
현재 연결을 유지하는 데 필요한 것이 없는 것 같습니다.
제 질문은: 48시간이 지난 후에도 SSH 연결이 계속 유지되는 이유는 무엇입니까? (내 컴퓨터는 다운되었지만 SSH를 통해 액세스하는 서버는 여전히 온라인 상태일 수 있습니다.)
답변1
이론적으로 SSH 연결은 무기한 지속될 수 있습니다. SSH 계층( FIN
패킷 사용) 또는 RST
TCP 계층(패킷 사용)에서 비정상적으로 당사자에 의해 명시적으로 종료될 수 있습니다.
RST
이는 한 당사자가 패킷을 보냈지만 합리적인 시간 내에 TCP 승인을 받지 못하는 경우 발생할 수 있습니다. 이는 일반적으로 상대방이 더 이상 주변에 없기 때문입니다. 이는 중간에 NAT나 방화벽이 연결 추적을 중지하여(일반적으로 활동 부족으로 인해) 두 당사자가 더 이상 통신할 수 없는 경우에도 발생할 수 있습니다. 더욱 교묘하게는 사악한 ISP의 라우터가 RST
연결에 패킷을 주입할 수 있지만 이러한 조치는 일반적으로 BitTorrent와 같이 ISP가 불쾌하다고 간주하는 콘텐츠만을 대상으로 합니다.
연결 유지는 NAT 또는 방화벽에 연결 상태를 유지하도록 상기시켜 연결을 활성 상태로 유지하는 데 도움이 됩니다. 그러나 활성화된 상태로 유지하면 네트워크 연결에 일시적인 결함이 발견될 가능성이 높아지므로 해로울 수도 있습니다.
답변2
sshd_config에서 ClientAliveInterval을 설정해야 할 수도 있습니다.