2015년 4월 22일 수요일
ssh tunneling
터널링 1: 로칼포트 포워딩
로칼포트 = 1234
SSH서버 = 192.168.0.99
SSH서버계정 = guest
대상호스트 = TARGET # SSH서버와 같을 경우 localhost
대상포트 = 5678
로칼포트 1234 에 접근하면,
192.168.0.99 에서 TARGET:5678 에 접근한 것 같이 동작.
즉. 로칼머신에서는 TARGET:5678 에 접근이 안되고
SSH 서버에서는 접근이 될 때, SSH 서버를 Proxy 같이 사용.
* command line
$ ssh -f -N -L1234:TARGET:5678 guest@192.168.0.99
-N : 터널링만 하고 명령 실행은 못함
-f: 백그라운드로 동작
* ~/.ssh/config
$ cat ~/.ssh/config
Host server
HostName 192.168.0.99
User guest
LocalForward 1234 TARGET:5678
$ ssh -f -N server
* teraterm
Setup > SSH Forwarding... > Add... >
[*] Forward local port: [1234]
to remote machine [TARGET] port [5678]
File > New connection...
Host [ssh://guest@192.168.0.99]
OK
* putty
Connection
Data
Login details
Auto-login username [guest]
SSH
Tunnels
Source port [1234]
Destination [TARGET:5678]
Add
Session
Host Name [192.168.0.99] Port [22]
Saved Sessions [SSH 터널 - 로칼포트 포워딩]
Save
Open
터널링 2: 리모트 포트 포워딩
SSH서버 포트 = 1234
SSH서버 = 192.168.0.99
SSH서버계정 = guest
대상호스트 = TARGET # 로칼머신과 같을 경우 localhost
대상포트 = 5678
SSH 서버의 포트 1234 에 접근하면,
로칼머신에서 target의 5678 에 접근한 것 같이 동작.
* comman-line
$ ssh -R 1234:target:5678 -N -f guest@192.168.0.99
* teraterm
Setup > SSH Forwarding... > Add... >
[*] Forward remote server port: [1234]
to local machine [TARGET] port [5678]
File > New connection...
Host [ssh://guest@192.168.0.99]
OK
참고
* http://egloos.zum.com/milines/v/3781525
* http://linux.systemv.pe.kr/ssh-%ED%8F%AC%ED%8A%B8-%ED%8F%AC%EC%9B%8C%EB%94%A9/
* http://www.revsys.com/writings/quicktips/ssh-tunnel.html
* http://qgp9.github.io/blog/2016/03/26/ssh-proxy-jump-host