Last Updated on 8월 17, 2021 by Jade(정현호)
안녕하세요
이번 포스팅에서는 SSH 를 접속 후 MySQL 를 접속 하는 방식인 "Standard TCP/IP over SSH" 을 통해 workbench 로 MySQL 을 접속 하는 방법의 포스팅 입니다.
ssh 를 접속 할때 OS계정의 패스워드가 아닌 개인키(비밀키)를 사용하는 방법에 대한 내용 입니다.
클라우드 환경에서는 패스워드 인증이 아닌 비밀키를 사용함으로 클라우드(EC2,OCI 등) 에서의 접속하는 상황과 동일 하다고 보시면 됩니다.
SSH -> MySQL 이 이루어지게 되는 과정에서 SSH 접속을 클라우드에 접속 할 때 처럼 개인키(비밀키) 를 이용 하는 것입니다.
Contents
SSH 키 생성
먼저 접속하고자 하는 MySQL 서버에 ssh 로 접속 합니다.
접속 후 아래와 같이 ssh-keygen -t rsa -b 4096 명령어를 를 통해서 유저의 키를 생성 합니다
* 이미 개인키(비밀키)를 소지하고 있다면 이 단계는 생략 해도 됩니다.
물어보는 여러 항목에서 그냥 엔터를 입력 합니다.
키가 생성 하였다면 id_rsa.pub 의 내용을 authorized_keys 에 추가를 합니다.
$ cd .ssh
$ cat id_rsa.pub >> authorized_keys
$ chmod 600 authorized_keys
==> permission 은 600 이나 400 이어야 합니다.
그다음 sftp 를 통해 .ssh 디렉토리 안에 있는 id_rsa 파일을 PC로 다운 받습니다.
SSH 로 Workbench 로 접속
먼저 sftp 를 통해 .ssh 디렉토리 안에 있는 id_rsa 파일을 PC로 다운 받습니다.
MySQL Workbench 에서 접속 방식을 Standard TCP/IP over SSH 를 선택하고 진행 합니다.
서버 접속 주소와 유저명 등을 기재 하고 "SSH Key File" 항목에 표기된 개인키를 넣어줍니다
파일명 : id_rsa
MySQL Hostname : 127.0.0.1 이나 localhost 를 입력 혹은 서버 IP
MySQL Port : 기본은 3306 입니다.
Username : 접속할 username 을 입력 합니다.
[참고1] 접속할 username 의 host 의 정보에서 localhost or 127.0.0.1 이 없다면 접속이 안될 수 있습니다
mysql> select user,host from mysql.user;
접속할 IP대역이 localhost나 127.0.0.1 이나 서버 IP 중 1개라도 있는지 확인 해야 합니다.
[참고2] puttygen 을 통해 생성한 Private key (PPK) 는 putty에서만 사용가능 합니다.
그렇기 때문에 서버에서 openssl 을 통해 생성한 키를 이용 해야 합니다.
서버에서 받은 개인키(id_rsa) 를 통해 접속 해보시면 접속이 되는걸 확인 하실수 있습니다.

Principal DBA(MySQL, AWS Aurora, Oracle)
핀테크 서비스인 핀다에서 데이터베이스를 운영하고 있어요(at finda.co.kr)
Previous - 당근마켓, 위메프, Oracle Korea ACS / Fedora Kor UserGroup 운영중
Database 외에도 NoSQL , Linux , Python, Cloud, Http/PHP CGI 등에도 관심이 있습니다
purityboy83@gmail.com / admin@hoing.io