- SSH 세션이 멈췄을 때 프로세스를 강제 종료할 필요 없이, SSH에 내장된 이스케이프 시퀀스 메뉴를 통해 다양한 제어 가능
- 세션 내에서 ↵Enter 입력후 ~?를 입력하면 숨겨진 명령어 목록이 표시되며, ~.으로 어떤 상황에서도 즉시 연결 종료 가능
- 이 이스케이프 시퀀스는 SSH 클라이언트 자체에 내장되어 있어 서버나 연결이 끊어진 상태에서도 동작
- 중첩 SSH 세션에서는 ~~를 사용해 내부 클라이언트로 시퀀스를 전달할 수 있음
- 추가로 -C, -v, -D 등의 유용한 SSH 옵션도 함께 소개
SSH 이스케이프 시퀀스 메뉴
- SSH 세션 내에서 ↵Enter를 누른 뒤 ~?를 입력하면 지원되는 이스케이프 시퀀스 목록 확인 가능
- 주요 시퀀스 목록:
-
~. — 연결 종료 (멀티플렉싱된 세션 포함)
-
~B — 원격 시스템에 BREAK 신호 전송
-
~C — 커맨드 라인 열기 (포트 포워딩 설정 가능, help 입력으로 안내 확인)
-
~R — rekey 요청
-
~V/v — verbosity(LogLevel) 증가/감소
-
~^Z — SSH 일시 중지(suspend)
-
~# — 포워딩된 연결 목록 표시
-
~& — SSH를 백그라운드로 전환 (연결 종료 대기 중일 때)
-
~~ — 이스케이프 문자 자체를 전송 (두 번 입력)
- 이 시퀀스들은 SSH 클라이언트 자체에 내장되어 있어, SSH 서버가 응답하지 않거나 연결이 끊어진 상태에서도 작동
- 가장 유용한 것은 ~.으로, 세션이 멈췄을 때 어떤 상황에서든 즉시 종료 가능
- 이스케이프 시퀀스는 새 줄(newline) 직후에만 인식됨
중첩 SSH 세션에서의 사용
- SSH 세션 안에서 다시 SSH로 접속한 중첩 환경에서는 ~~를 사용해 내부 클라이언트로 시퀀스 전달 가능
- 예시:
pinkie@stable:~$ ssh ponyville # stable
pinkie@ponyville:~$ ssh manehatten # stable › ponyville
pinkie@manehatten: ~$ # stable › ponyville › manehatten
pinkie@manehatten:~$ Connection to manehatten closed. # ↵Enter `~~.`
pinkie@ponyville:~$ # stable › ponyville
pinkie@ponyville:~$ ssh manehatten stable › ponyville
pinkie@manehatten: ~$ # stable › ponyville › manehatten
pinkie@manehatten:~$ Connection to ponyville closed. # ↵Enter `~.`
pinkie@stable:~$ # stable
-
stable → ponyville → manehatten으로 접속한 상태에서
-
~~. 입력 시 가장 안쪽 세션(manehatten)만 종료되고 ponyville로 복귀
-
~. 입력 시 중간 세션(ponyville)까지 종료되고 stable로 복귀
보너스 SSH 옵션
-
ssh -C — gzip 압축 활성화, 문서상으로는 빠른 네트워크에서 불필요하다고 되어 있지만 TUI 사용이나 대량 로그 출력 시 지연시간과 반응성 개선에 큰 효과
-
ssh -v — 상세 로깅 활성화 (-vv, -vvv로 더 많은 정보 출력 가능), 느린 연결이나 Raspberry Pi 같은 느린 장비 접속 시 연결이 멈춘 것인지 단순히 느린 것인지 판별에 유용
-
ssh -D 1234 — localhost:1234에 SOCKS 프록시 생성, 서버의 네트워크를 통해 접속 가능하여 서버 측 LAN 작업이나 간이 DIY VPN 용도로 활용 가능