SSH 터널링, 접속 후에도 설정할 수 있어요!

SSH 터널링은 보통 접속 전에만 설정 가능한 걸로 알고 있죠? 하지만 터널링이 필요한 상황은 접속한 후에도 갑자기 생길 수 있어요. 이럴 땐 SSH escape sequence를 이용하면 터널링을 새로 추가할 수 있어요. 이번 글에서는 SSH 접속 후에도 터널링 설정을 바꿀 수 있는 방법을 알려드릴게요 🛠️

SSH escape sequence, 정말 쓸모 있어요

SSH 연결 중에 연결을 끊거나, 포트를 추가로 포워딩하고 싶을 때는 어떻게 할까요? 터미널을 닫고 다시 연결하는 건 너무 번거롭죠. 이럴 때 escape sequence(이스케이프 시퀀스)를 사용하면 해결돼요!

사용 방법은 간단해요. SSH로 접속한 후, Enter 키를 두 번 누르고 ~ 키를 누른 뒤 원하는 명령을 입력하면 돼요. 예를 들어, ~C를 입력하면 SSH 명령어 프롬프트에 들어갈 수 있어요.


자주 쓰는 escape sequence 명령어

여기서 몇 가지 유용한 escape 명령어를 알려줄게요 💡

  • ~. : 현재 SSH 연결을 깔끔하게 종료할 수 있어요.
  • ~C : ssh> 프롬프트로 진입해서 포트포워딩을 새로 추가하거나 취소할 수 있어요.
  • ~? : 사용할 수 있는 escape 명령어 목록을 보여줘요.

예를 들어, Enter 두 번 → ~C 입력 후에는 다음과 같은 명령어를 볼 수 있어요:

ssh> ?
Commands:
  -L[bind_address:]port:host:hostport     Request local forward
  -R[bind_address:]port:host:hostport     Request remote forward
  -D[bind_address:]port                   Request dynamic forward
  -KL[bind_address:]port                  Cancel local forward
  -KR[bind_address:]port                  Cancel remote forward
  -KD[bind_address:]port                  Cancel dynamic forward

이 기능을 쓰면, 기존 연결을 유지하면서도 즉석에서 포트를 포워딩할 수 있어요. 정말 유용하죠? 😊


escape 기능이 안되는것 같아요..

혹시 ~C 명령이 안 먹히거나, 프롬프트 진입이 안 되는 경우가 있나요? 그건 SSH 설정에서 해당 기능이 비활성화 되어 있어서 그럴 수 있어요.

이럴 땐 아래처럼 SSH 연결 전에 명시적으로 옵션을 설정해주면 돼요.

ssh -o EnableEscapeCommandline=yes user@host

또는 ~/.ssh/config 파일에 아래 항목을 추가해두는 것도 좋아요. 모든 SSH 연결에 적용된답니다.

Host *
  EnableEscapeCommandline yes

이렇게 하면 굳이 ssh 명령어 옵션을 찾을일 없이, 언제든 escape sequence 기능을 사용할 수 있게 돼요.


요약

SSH 터널링은 꼭 연결 전에만 설정해야 하는 건 아니에요. escape sequence를 이용하면 연결된 상태에서도 터널링을 추가, 삭제할 수 있어요. 특히 ~C 명령어는 꼭 기억해두세요! 오작동 시에는 ~.로 연결을 안전하게 종료할 수도 있고요.

오늘은 SSH 터널링을 접속 후 설정하는 방법을 살펴봤어요. 기존 연결을 끊지 않고도 포트포워딩을 추가할 수 있는 팁, 꼭 활용해보세요!