SSH Tunnel 만들기

#!/bin/zsh
# 기존 ssh 터널링 종료
pkill ssh

# 새로운 ssh 터널 생성
ssh -i key.pem -Nf \
-L <LOCALPORT1>:<SERVER1_IP>:<SERVER1_PORT> <USERNAME>@<TUNNELLING_SERVER_IP> \
-L <LOCALPORT2>:<SERVER2_IP>:<SERVER2_PORT> <USERNAME>@<TUNNELLING_SERVER_IP> 
  • ssh 명령어 옵션
    • C: 압축(Compression)
    • N: 쉘 명령 실행 안함(포워딩만 할 때)
    • f: 백그라운드 전환
    • L: 터널링 정보 제공
    • i: key 파일 정보 제공

기존 터널 있으면 프로세스 끝내기

 

# 특정 포트 리슨중인 프로세스만 종료
sudo lsof -t -i tcp:8000 | xargs kill -9

# ssh 프로세스 전체 종료(정규표현식 사용 가능)
pkill ssh

Tunnel List 보기

 

$ lsof -i -n |egrep '\<ssh\>'
ssh     10582 ubuntu    3u  IPv4 912287      0t0  TCP <SERVER_IP>:36108-><TUNNELLING_SERVER_IP>:ssh (ESTABLISHED)
ssh     10582 ubuntu    4u  IPv6 912294      0t0  TCP [::1]:8888 (LISTEN)
ssh     10582 ubuntu    5u  IPv4 912295      0t0  TCP 127.0.0.1:8888 (LISTEN)
ssh     10582 ubuntu    6u  IPv6 912298      0t0  TCP [::1]:8443 (LISTEN)
ssh     10582 ubuntu    7u  IPv4 912299      0t0  TCP 127.0.0.1:8443 (LISTEN)
ssh     10584 ubuntu    3u  IPv4 912302      0t0  TCP <SERVER_IP>:36110-><TUNNELLING_SERVER_IP>:ssh (ESTABLISHED)
ssh     10584 ubuntu    4u  IPv6 912309      0t0  TCP [::1]:http-alt (LISTEN)
ssh     10584 ubuntu    5u  IPv4 912310      0t0  TCP 127.0.0.1:http-alt (LISTEN)