본문 바로가기
공부/기록

DataGrip에서 SSH tunnel 사용하기

by 촌쥐 2021. 9. 14.

https://www.hanbit.co.kr/channel/category/category_view.html?cms_code=CMS5064906327&cate_cd= 

 

SSH Tunneling 사용하기

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

www.hanbit.co.kr

 

SSH Tunnel에 관한 개념이 헷갈리신다면 위의 글을 일고 오시는 걸 추천합니다.

그래도 읽고 오기 귀찮으신 분들을 위해서 간단하게 그림 예제로 넘어가겠습니다.

 

초록색 화살표처럼 직접 접근이 안되니 돌아서 간다!

 

Host A에 올라가 있는 APP에서 Host B에 있는 DB에 접근해서 데이터를 받아와야 한다고 생각해봅시다.

그런데 Host B에서는 모종의 이유로 DB로의 직접 접근을 막고 있습니다. 

그런데 SSH로 Host B에 접근이 가능하다면? 

SSH를 통하여 Host B에 접근한 뒤 Host B에 있는 DB에 접근하도록 만드는 것입니다. 

여기서 포트 포워딩 같은 개념도 등장하지만 자세한 설명은 맨위에 있는 링크에서 보시면 좋습니다.

 

 

DataGrip에서 Data Source 추가는 익숙하시다는 전제로 시작하겠습니다. 

 

올바른 DB 유형을 선택하시고 3번째 탭의 SSH/SSL로 들어갑니다.

여기에서 ① use SSH tunnel을 체크하고 ②번을 누릅니다.

 

 

여기서 입력해야 할 것은 터널링 서버입니다. 위에서 설명한 그림으로 치면 Host B에 대한 정보

만약 Host A 와 Host B DB 사이에 터널 역할의 서버가 있다면 그 서버를 입력해주면 됩니다.

만약 1.1.1.1 -> 2.2.2.2 라면 2.2.2.2를 1.1.1.1 -> 3.3.3.3 -> 2.2.2.2(DB) 라면 3.3.3.3을 입력해주는 것입니다.

정리해보겠습니다.

Host : 접속하려는 최종 서버와 통신이 가능한(최종 서버의 로컬도 가능) 서버의 주소

Port : 터널링 서버와 SSH 통신이 가능한 Port 번호 (기본은 22)

User name : 터널링 서버의 계정                         Local Port: 최종 목표의 포트에 연결할 터널링 서버의 포트번호

Password : 위에서 입력한 계정의 비밀번호

만약 정상적으로 접속이 되는 상태라면 Test Connection 버튼을 눌러 정상적으로 접속이 되는지 확인합니다.

성동한다면 다음과 같이 뜹니다.

 

만약 위와 같이 성공하였다면 많이 보셨을 General 창으로 갑니다.

 

 

SSH 터널이 제대로 설정되었다면 여기는 원래 접속하려던 DB의 정보를 입력해주면 됩니다.

이 부분은 많이 해보셨을 것이라 믿고 이후에는 접속 성공하시길 바랍니다.

 


인증 방식 같은 경우에는 저는 password를 택하였습니다. 

만약 다른 방식을 택하고 싶은데 방법을 모르겠는 경우 아래 공식 설명을 참조해주세요.

https://www.jetbrains.com/help/datagrip/configuring-ssh-and-ssl.html

 

Configuring SSH and SSL | DataGrip

 

www.jetbrains.com

 

 

 

댓글