HTTP proxy를 통한 ssh 연결 방법

뜻이 있는 곳에 길이 있다고.. proxy에 막혀 아무것도 할 수 없는 상황에서 http proxy를 통해서 외부로 연결할 수 있는 방법이 있다는 것을 알았다.

사용할 수 있는 기본 환경은 이렇다.

  1. 22번 포트가 막혀있다. (아마 다른 대부분의 포트가 막혀있다.)
  2. Browser에 http proxy 설정을 해야 web 서핑을 할 수 있다.
  3. 리눅스를 쓴다.

서버 설정

서버 설정은 별다른게 없다. sshd를 22번으로 열어놔도 괜찮고, 혹시 22번 포트 검사를 할까 싶으면 443번 포트로 sshd를 열어둔다. (https로 속아줄지도 모르니까..) 또는 공유기에서 443 -> 22로 포트포워딩을 추가해도 된다.

특정 장소에서

리눅스에서 필요한 패키지를 설치한다.

$ sudo apt-get install corkscrew

그리고 ~/.ssh/config 파일에 다음과 같은 라인을 추가해준다.

host my.host.com
	ProxyCommand /usr/bin/corkscrew proxy.server.com [proxy_port] %h %p

이렇게 설정한 후에 ssh my.host.com 이라고 입력하면 22번 포트로 my.host.com에 연결이 된다. (my.host.com에 연결할 때만 이렇게 proxy를 사용한다.) 혹시 443번 포트로 변경을 했다면 ssh my.host.com -p 443 이라고 입력하면 된다.

ssh 연결이 되었으니 -D 옵션을 사용하여 포트 포워딩은 덤으로 할 수 있다. 이제 특정 장소의 방화벽을 우회하여 어디든 접속할 수 있다. 🙂

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다