MySQL SSH 연결 방법 완벽 가이드: HeidiSQL과 Workbench를 활용한 안전한 접속법
데이터베이스 관리는 웹 개발자, 서버 관리자, 데이터 엔지니어 모두에게 필수적인 작업입니다. 특히 외부 서버에 위치한 MySQL 데이터베이스에 접속해야 할 때는 보안이 매우 중요합니다. 오늘은 대표적인 무료 SQL 클라이언트인 HeidiSQL과 MySQL Workbench를 활용하여 **SSH 터널링(Secure Shell Tunnel)**을 통해 MySQL 서버에 안전하게 연결하는 방법을 상세히 소개합니다.
SSH 터널링의 기본 개념부터 각각의 툴을 활용한 접속 설정 방법까지, 블로그를 통해 MySQL SSH 접속에 대한 모든 것을 알기 쉽게 정리해드리겠습니다.
📌 목차
- SSH와 SSH 터널링이란?
- HeidiSQL로 MySQL SSH 접속하기
- MySQL Workbench를 통한 SSH 접속 설정
- 자주 발생하는 오류와 해결 팁
- 마무리 및 참고 사항
1. 🔍 SSH와 SSH 터널링이란?
SSH란?
SSH(Secure Shell)는 암호화된 보안 채널을 통해 원격 서버에 안전하게 접속할 수 있게 해주는 프로토콜입니다. 보통 리눅스 서버나 원격 시스템에 명령을 전달하거나 파일을 전송할 때 사용되며, 아래와 같은 방식으로 인증합니다:
✅ SSH 인증 방식
- 비대칭키 방식 (Public/Private Key Pair)
- 개인키(Private Key)와 공개키(Public Key)를 사용.
- 서버에는 공개키를 저장하고, 클라이언트는 개인키로 로그인.
- .pem 또는 .ppk 파일을 사용.
- 대칭키 방식
- 하나의 키로 암호화 및 복호화 진행.
- 보안성이 낮아 잘 사용되지 않음.
SSH 터널이란?
단순히 로컬에서 MySQL 서버로 직접 접속하는 것이 아니라, 중간에 SSH 서버를 거쳐 데이터베이스 서버에 접속하는 방식입니다. 이를 SSH 터널링이라고 부르며, 다음과 같은 경로로 데이터가 흐릅니다:
내 PC → SSH 서버 → DB 서버
이 구조를 통해, 외부에서 직접 MySQL 포트(보통 3306)에 접근하지 못하게 막으면서도 안전하게 접속할 수 있게 됩니다.
2. 🛠 HeidiSQL로 MySQL SSH 접속 설정하기
HeidiSQL은 가볍고 빠르며 MariaDB와 MySQL을 모두 지원하는 윈도우 기반의 SQL 클라이언트입니다. SSH 터널링 설정도 매우 직관적이어서 SSH 환경에서 개발을 자주 하는 분들께 적합합니다.
2-1. 기본 접속 설정
- HeidiSQL 실행 후 좌측 하단의 [신규] 버튼 클릭
- 우측 설정창에서 상단 [설정] 탭 선택
- 네트워크 유형: MariaDB or MySQL (SSH tunnel) 선택
- 호스트/IP: 127.0.0.1 (로컬 루프백 주소 그대로)
- 사용자명/암호: MySQL 계정 정보 입력
- 포트: MySQL의 내부 포트(기본값 3306 또는 사용자 지정 포트)
2-2. SSH 터널 설정
- 상단의 [SSH 터널] 탭 클릭
- [Use SSH tunnel] 옵션 체크
- SSH 실행 파일: plink.exe 선택 (PuTTY의 부속 실행파일, 다운로드 필요)
- SSH 호스트/IP 및 포트: 접속하려는 서버의 IP와 포트번호 입력 (기본 SSH 포트는 22)
- SSH 사용자명/암호: 리눅스 서버의 SSH 로그인 정보 입력
- 개인키 파일(.ppk): PuTTY Key Generator로 변환한 .ppk 포맷 사용
(※ .pem은 구버전 형식이므로 오류 발생 가능)
💡 팁: .pem → .ppk 변환은 puttygen을 사용하면 손쉽게 변환 가능합니다.
3. 🧩 Workbench에서 SSH를 통한 MySQL 접속
MySQL 공식 GUI 툴인 Workbench는 직관적인 UI와 강력한 기능 덕분에 많은 개발자들이 사용합니다. SSH 터널을 통한 접속도 지원하며, 설정 방식은 다음과 같습니다.
3-1. Workbench 접속 설정 단계
- Workbench 실행 후 [Database] → [Manage Connections] 클릭
- [Connection Method]: Standard TCP/IP over SSH 선택
3-2. SSH 관련 항목 입력
- SSH Hostname: 서버 IP주소 및 포트 (예: 192.168.1.10:22)
- SSH Username: SSH 서버 계정 (예: ubuntu, root)
- SSH Password: 비밀번호 입력 (또는 SSH Key 사용)
- SSH Key File: .pem 또는 .ppk 형식의 키 파일 경로 지정
3-3. MySQL 접속 정보 입력
- MySQL Hostname: 127.0.0.1 또는 localhost
- MySQL Port: 보통 3306 (또는 서버에서 설정한 포트)
- Username / Password: MySQL 사용자 계정 및 비밀번호
- Default Schema: 접속 후 기본으로 사용할 데이터베이스명 지정
🎯 접속 예시 설정
항목 입력 값 예시
SSH Hostname | ec2-3-25-120-52.compute.amazonaws.com:22 |
SSH Username | ubuntu |
SSH Key File | C:\Users\UserName\.ssh\my-key.pem |
MySQL Hostname | 127.0.0.1 |
MySQL Port | 3306 |
Username | mydbuser |
Password | mypassword |
Default Schema | mydatabase |
4. ⚠️ 자주 발생하는 오류와 해결 방법
1. ❌ SSH Key 관련 오류
- 문제: .pem 키 파일 사용 시 "오래된 형식입니다" 메시지 발생
- 해결: puttygen으로 .pem → .ppk 변환
2. ❌ 접속 시간 초과
- 문제: SSH 연결 시 오래 걸리거나 실패
- 해결: 서버의 방화벽 설정 확인 (포트 22 및 3306이 열려 있어야 함)
3. ❌ 인증 실패
- 문제: 비밀번호 또는 키 인증 실패
- 해결: 서버에 올려진 authorized_keys 파일 내 공개키 확인
5. ✨ 마무리: 어떤 도구를 선택할까?
- 간편하고 가벼운 SQL 관리툴이 필요하다면 → HeidiSQL 추천
- 직관적인 GUI와 다중 기능이 필요하다면 → MySQL Workbench 추천
둘 다 SSH 터널링을 통한 보안 접속을 지원하므로, 사용자의 필요와 취향에 따라 선택하면 됩니다.
📎 정리
항목 HeidiSQL Workbench
플랫폼 | Windows 전용 | Windows, macOS, Linux |
SSH 키 형식 | .ppk 필요 | .pem, .ppk 지원 |
GUI | 다소 단순 | 시각적으로 우수 |
설치 용량 | 가벼움 | 비교적 무거움 |