SSH 세션이 조용히 죽는 이유
유휴 SSH 연결이 경고 없이 사라질 수 있어. NAT 테이블 만료, 방화벽이 유휴 TCP drop, 노트북 sleep — 어느 하나가 SSH 가 세션 살아 있다고 생각하는 동안 path 가 죽게 만듦. 다음 키 칠 때 세션이 영원히 hang 또는 결국 헷갈리는 에러로 timeout.
ServerAliveInterval — proactive keepalive
ServerAliveInterval 60 설정이 SSH 한테 60 초마다 암호화된 keepalive 패킷 보내라고 지시. ServerAliveCountMax 3 가 "3 번 연속 답 없으면 포기하고 깨끗이 끊어". 함께 — 분마다 keepalive, 무한 hang 대신 3 분 침묵 후 깨끗한 disconnect.
Keepalive 패킷 작아. 비용 미미. 항상 Host * 에 설정. SSH 가 조용히 freeze 하길 원하는 시나리오 없어.
서버 쪽 등가물
서버는 /etc/ssh/sshd_config 에 거울 directive — ClientAliveInterval 와 ClientAliveCountMax. 서버 시점에서 같은 일 — 연결 잃은 클라이언트 쫓아내는 데 유용 (안 그러면 PTY 가 영원히 남음).