ssh 터널링 질문입니다.
글쓴이: techneer / 작성시간: 일, 2008/09/21 - 5:50오후
ssh 터널링을 이용하고 싶은데요, 문서 찾아봐도 좀 어려운 것 같아요.
밑에 두가지 경우에 대해서 질문이 있습니다.
1.
서버A - PC - 서버B 가 있는데,
PC에서는 서버A와 서버B 각각으로 ssh 접속이 가능한데,
서버A와 서버B 상호간에는 접속이 불가능 합니다.
이런 경우에 ssh 터널링을 사용하면, 서버A에서 서버B로 바로 접근이 가능할 것 같은데, 명령어를 어떻게 해야할까요?
2.
서버C - 서버A - PC 가 있는데,
서버C와 PC간의 연결은 안됩니다.
이런 경우에 PC에서 바로 서버C에 접근하기 위해서,
ssh 터널링 명령을 어떻게 해야 할까요?
고수님들의 답변 부탁드립니다.
Forums:
1, 2 모두 같은 case 같군요.
간단히 google 등에서 ssh tunneling 으로 검색해 보시면 수많은 참고 문서들이 있습니다. :)
가까이에 http://wiki.kldp.org/wiki.php/OpenSshTunneling 에도 적당한 예제가 있는듯 합니다.
뭐 저도 별로 써 보진 않아서 정확한 답변은 될 수 없겠지만, 이렇게 하면 되지 않을까 싶습니다.
1번처럼 A가 PC를 통해 B에 접속하고자 할 때
PC 에서 B로 tunneling 을 만듭니다.
PC> ssh -L :localhost:22 B_user@B
는 PC쪽에 열어둘 port 번호로, 해당 port로 접속하면 B server의 B user로 ssh 접속이 이루어질 것입니다. 즉 A 에서는
A> ssh PC -p
처럼 하시면 PC의 localport 를 통해 ssh 접속을 시도할 수 있습니다.
(잘 안 될 경우엔, 아예 PC 로 접속한 뒤 ssh localhost -p 처럼 할 수도 있겠지요.)
또한가지는 reverse tunneling 이란 것이 있습니다. -L 옵션 대신 -R 옵션을 이용하는 것으로,
1번의 경우에서 PC 에서 B로 접속은 불가능하고, B 에서 PC로 접속만 가능할 때 사용할 수 있는 방법입니다.
즉 PC 쪽에서 B로 tunnel을 뚫는 것이 아니라 B 에서 PC쪽으로 tunnel을 뚫는 것이지요.
B> ssh -R :localhost:22 PC_user@PC
이 경우에도, PC의 로 들어오는 접속은 B 서버의 22번으로 tunnel 이 생기게 됩니다.
댓글 달기