본문 바로가기

프로젝트 설정/서버

[SSH] ssh 터널링 (포트 포워딩) (feat. VSCode Good)

반응형

예를 들어 backend에서만 접근이 가능한 파일이 있다.

그랬을 경우 로컬에서 backend를 운영한다고 해도 서버에서 있는 값과 동일한 실행을 할수가 없다.

왜? local에서는 접근이 불가능하니까

그럴때 사용하기 유용한 ssh 터널링 (다른데에도 많이 사용되겠지만;;)을 사용해보자.

 

이글보다 아래글 들을 추천한다.

https://www.ssh.com/academy/ssh/tunneling

 

What is an SSH Tunnel & SSH Tunneling?

SSH tunneling is a method of transporting arbitrary networking data over an encrypted SSH connection.

www.ssh.com

https://www.hanbit.co.kr/network/category/category_view.html?cms_code=CMS5064906327 

 

SSH Tunneling 사용하기

SSH(Secure Shell)는 네트워크 보안에 있어 대중적이고 강력한 접근 방식을 제공하기 위해 만들어진 프로토콜이다. SSH에 기반한 제품은 서버와 클라이언트의 한 쌍으로 구성되어 있는데, 보통 사용

www.hanbit.co.kr

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=alice_k106&logNo=221364560794 

 

150. [SSH, Network] SSH 포트 포워딩(SSH 터널링)의 개념 및 사용 방법

이번 포스트에서는 'SSH 포트 포워딩' 또는 'SSH 터널링' 이라고 불리는 것에 대해서 설명한다. 1. ...

blog.naver.com

1. Tunneling 이란?

데이터 스트림을 인터넷 상에서 가상의 파이프를 통해 전달시키는 기술
> 패킷 내에  터널링할 대상을 캡슐화시켜 목적지까지 전송

[데이터통신]  터널링 기법
 
  ㅇ 두 노드 또는 두 네트워크 간에 가상의 링크(VPN 등)를 형성하는 기법
     - 하나의 프로토콜이 다른 프로토콜을 감싸는 캡슐화 기능을 통해 운반

  ※ 일반적으로 터널링 기법은,
     - 대부분, 보안 채널의 역할을 하므로, 암호화 기법 적용이 일반적임
     - 심지어, 엄격하게 계층화된 프로토콜들을 뒤집어 감싸서 만들 수도 있음
     - 또한, 오버레이 네트워크 구성도 가능하게 함

 

ssh tunnelling을 기준으로 설명을 보면

아래 [그림 1]에서처럼 Host A에는 SSH 클라이언트가 설치되어 있고 Host B에는 SSH 서버가 설치되어 있다고 하자. SSH 클라이언트를 통해 SSH 서버에 접속을 하면 둘 사이에 연결이 이루어지는데 이 연결 통로를 터널이라고 한다. 암호화 등을 통해 터널처럼 외부로부터 이 연결을 보호하기 때문이다. 그래서 터널링이라고 부른다. 여기서 중요한 사실은 이러한 SSH를 통해 만든 터널을 다른 애플리케이션이 이용할 수가 있다는 것이다. 이러한 일을 가능하게 하는 것이 포트 포워딩(Port Forwarding)이란 기술이므로 포워딩이라고도 부른다. 

[그림 1] 『SSH, The Secure Shell: The Definitive Guide』 317p 참고, SSH 포워딩

그렇다면 이것이 무슨 의미가 있을까? 이 터널을 이용한다는 것은 곧 암호화 등의 SSH의 장점을 모두 사용할 수 있다는 것을 의미한다. 즉, 암호화를 지원하지 않는 프로그램을 안전하게 사용할 수 있다는 것이다. (참고로 TCP를 사용하는 프로그램만 지원하고 UDP 등 다른 프로토콜은 지원하지 않는다.) 다시 위의 [그림 1]을 살펴보도록 하자. Host A의 application client가 Host B의 application server로 접속할 때에 일반적으로는 직접 접속(direct connection)을 한다. 하지만 SSH 터널링을 이용하면 application client가 SSH 클라이언트에 접속을 하고 필요한 데이터를 SSH 서버를 통해 application server에 전달한다. 즉 그림에서처럼 forwarded connection을 하게 된다. 터널링은 SSH 클라이언트가 SSH 서버에 접속되어 있을 때에만 유효하고, 연결시에만 설정할 수 있다는 것에 유의하자. 

 

출처 : https://www.hanbit.co.kr/network/category/category_view.html?cms_code=CMS5064906327

 

2. 준비물

ssh 터널링은 이름에서부터 ssh 접속이 가능해야 가능하다.

ssh 설정하자.

 

다른곳에서 봐도 되고 아래 글에서 ssh 설정쪽을 봐도 된다.

ssh key를 사용한 접속 방법은 또 찾아봐야한다.

 

https://24hours-beginner.tistory.com/391

 

[Docker] vscode에서 Container 직접적으로 연결하기 (feat. ssh)

아래 자료에서는 컨테이너를 조회해서 찾아서 들어간다. (컨테이너에 따로 포트를 열수없는 등의 문제가 있을 경우 아래 방법을 추천한다.) https://24hours-beginner.tistory.com/278 [VSCode] SSH 연결하기 (+

24hours-beginner.tistory.com

 

3. ssh Tunneling 설정 (feat. VS Code)

간단하게 그냥 지금 있는 환경에서 확인 처리만 해보고자한다.

vscode는 너무 간단하다;;

ctrl+` 이걸하면 터미널창이 나온다. 여기서 포트창 클릭

여기서 Forward a Port를 클릭한다.

"포트" 쪽에는 "서버"쪽 포트를 적어주면 된다.

클라이언트쪽에서 작성 하였을때에는 아래와 같이 원본이 "사용자가 전달함" 이라고 나타나고

서버쪽에서 자동으로 되는 경우 원본에 "자동 전달됨" 이라고 나타난다.

 

다른곳에서는 putty 또는 xshell 등을 사용해서 완벽하게 통신만도 가능하다.

 

참조

더보기

https://www.hanbit.co.kr/network/category/category_view.html?cms_code=CMS5064906327 

 

SSH Tunneling 사용하기

SSH(Secure Shell)는 네트워크 보안에 있어 대중적이고 강력한 접근 방식을 제공하기 위해 만들어진 프로토콜이다. SSH에 기반한 제품은 서버와 클라이언트의 한 쌍으로 구성되어 있는데, 보통 사용

www.hanbit.co.kr

http://www.terms.co.kr/tunneling.htm

 

[텀즈] tunneling ; 터널링

터널링은 인터넷을 사적(私的)이며 안전한 네트웍의 일부로서 사용하는 것으로서, 한 네트웍에서 다른 네트웍의 접속을 거쳐 데이터를 보낼 수 있도록 하는 기술을 말한다. 터널링은 두 번째 네

www.terms.co.kr

http://www.ktword.co.kr/test/view/view.php?m_temp1=1708 

 

터널링

  Tunneling, Tunneling Protocol   터널링, 터널링 프로토콜(2021-05-11)

www.ktword.co.kr

https://blackrice91.tistory.com/107

 

 

터널링(Tunneling)

터널링(Tunneling) 1. 용어 정리 - 데이터 스트림을 인터넷 상에서 가상의 파이프를 통해 전달시키는 기술[1] - 컴퓨터 네트워크에서 터널링 프로토콜을 사용하면 네트워크 사용자는 기본 네트워크

blackrice91.tistory.com

https://devbin.kr/ssh-tunneling-%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%98%EC%97%AC-port-forwarding%EC%9D%84-%ED%95%B4%EB%B3%B4%EC%9E%90/#SSH_Tunneling

 

SSH tunneling 을 이용하여 Port forwarding을 해보자 | Devbin

SSH tunneling Secure Shell(SSH) 이름 그대로 보안을 위한 쉘 인줄 알았는데..? 글쓴이는 서버를 구축해놓고 여태까지 원격접속으로 쉘 밖에 이용하지 않았다. 그리고 SMB의 445 포트를 외부에서도 사용할

devbin.kr

https://linuxize.com/post/how-to-setup-ssh-tunneling/

 

How to Set up SSH Tunneling (Port Forwarding)

SSH tunneling or SSH port forwarding is a method of creating an encrypted SSH connection between a client and a server machine through which services ports can be relayed.

linuxize.com

https://liveyourit.tistory.com/3

 

[네트워크] VPN이란 ? 정의/ 터널링/터널링 프로토콜(IPSecVPN, MPLSVPN, SSL 등)

VPN(Virtual Private Network)는 의미 그대로 가상 사설망을 의미한다. VPN 이라는 말은 많이 들어봤는데... 가상 사설망이 정확히 뭔지? 왜 쓰는지? 관련 터널링 프로토콜에는 무엇이 있는지? 등을 이론적

liveyourit.tistory.com

https://www.ssh.com/academy/ssh/tunneling-example

 

SSH Tunneling: Client Command & Server Configuration

SSH port forwarding is a mechanism in SSH for tunneling application ports from the client machine to the server machine or vice versa.

www.ssh.com

https://www.ssh.com/academy/ssh/tunneling

 

What is an SSH Tunnel & SSH Tunneling?

SSH tunneling is a method of transporting arbitrary networking data over an encrypted SSH connection.

www.ssh.com

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=alice_k106&logNo=221364560794 

 

150. [SSH, Network] SSH 포트 포워딩(SSH 터널링)의 개념 및 사용 방법

이번 포스트에서는 'SSH 포트 포워딩' 또는 'SSH 터널링' 이라고 불리는 것에 대해서 설명한다. 1. ...

blog.naver.com

 

 

 

 

 

반응형