개발 관련

HeidiSQL에서 MySQL에 SSH 터널(Tunnel)로 접속하기

우진샘 2023. 1. 23. 23:02

보통 DB 접속을 위해서 HeidiSQL을 많이 사용하는 것 같다.

일반적으로 DB에서 외부접속이 허용되는 경우에는 간단한 설정만으로 접속이 가능하고

그런 설정에 대한 정보와 자료는 간단한 검색으로 쉽게 찾아볼 수 있다.

하지만 SSH 터널을 이용한 접속 방법에 대해서는 제대로 설명을 해 놓은 자료가 없고

기껏 찾아본 자료들은 설명이 잘 못 되어 있어서 전혀 맞지가 않기에

직접 여러가지 테스트를 해가며 설정한 내용을 공유하고자 한다.

요즘은 보안이 강화되는 추세라 SSH 터널(Tunnel)을 이용한 접속도 늘어나고 있는데

이러한 정보를 찾으시는 분들에게 도움이 되었으면 한다.

 

참고로 SSH 터널의 접속 개념은 아래와 같다.

  - 내 PC => SSH서버 => DB서버

즉 내 PC에서 DB서버로 직접 접속하는 것이 아니라 내 PC에서는 SSH 서버에 접속을 하고

SSH서버에서 DB서버에 접속을 하는 개념이다.

 

먼저 SSH 터널에 대한 설정이다. 참고로 db에 대한 설정이 아닌 순수 ssh 서버 접속정보이니 헷갈리지 말자.

  • SSH 실행 파일 : ssh접속에 사용할 프로그램인데 plink.exe를 그대로 사용한다. 참고로 plink.exe가 없는 경우 putty를 설치하면 plink.exe가 같이 설치가 된다.
  • SSH 호스트 + 포트 : ssh로 접속할 서버의 ssh 접속 정보이다. 포트는 ssh 포트로 보통 22번을 사용한다.
  • 사용자이름 : ssh로 접속시 사용할 계정의 이름이다. 위에서 설명했듯이 db계정이 아닌 해당 서버의 계정이다.
  • 암호 : ssh로 접속하는 계정의 암호이다. 나의 경우 키 파일을 사용하므로 입력하지 않았다.
  • 개인 키 파일 : 암호를 사용하는 경우에는 필요가 없지만 나의 경우 개인 키 파일을 사용하여 접속했다.
  • 로컬 포트 : 내 PC의 포트가 아닌 ssh서버의 포트로 db서버로의 접속시 사용할 포트인 것 같다. ssh서버에서 비어있는 아무 포트나 지정하면 되며 보통 3307번을 사용하지 않을 것이므로 그대로 사용하면 된다.

 

다음은 설정탭에 대한 설정이다. 이 설정은 접속한 ssh서버에서 db서버로 접속시 사용하는 설정이다.

  • 네트워크 유형 : db의 종류에 맞는 SSH tunnel을 선택한다. 나의 경우 MariaDB에 접속을 했다.
  • Library : db의 종류에 맞는 library를 선택한다.
  • 호스트명 / IP : db서버의 ip이다. 보통은 ssh서버가 db서버이므로 127.0.0.1을 입력하였다. 만약 ssh서버와 db서버가 다르다면 db서버의 내부ip를 입력하면 된다.
  • 사용자 : db계정을 입력한다.
  • 암호 : db계정의 암호를 입력한다.
  • 포트 : 열려있는 db 포트를 입력한다.

여기까지 설정을 하고 접속을 하면 접속이 될 것이다.

정리하자면 'SSH 터널' 탭의 설정은 내 PC에서 SSH서버로의 접속에 대한 설정이고
'설정' 탭의 설정은 SSH서버에서 DB서버로의 접속에 대한 설정이다.