SW/리눅스

SSH Tunnel 로 MySQL 연결 방법, 예제, 명령어

얇은생각 2022. 3. 5. 07:30
반응형

기본적으로 MySQL 서버는 로컬 호스트에서만 수신 대기하므로 동일한 호스트에서 실행되는 응용 프로그램에서만 액세스할 수 있습니다.

그러나 경우에 따라 원격 위치에서 서버에 연결할 수도 있습니다. 한 가지 옵션은 원격 연결을 허용하도록 MySQL 서버를 구성하는 것이지만, 이 경우 관리자 권한이 필요하며 이로 인해 보안 위험이 발생할 수 있습니다.

로컬 시스템에서 서버로 SSH 터널을 만드는 것이 더 안전합니다. SSH 터널링은 서비스 포트를 릴레이할 수 있는 클라이언트와 서버 시스템 간에 암호화된 SSH 연결을 만드는 방법입니다.

SSH 터널을 만들고 원격 클라이언트에서 MySQL 서버에 연결하는 방법에 대해 설명합니다. MariaDB에도 동일한 지침이 적용됩니

 

 

 

필수 조건

SSH 클라이언트입니다.

MySQL 서버가 실행되는 시스템에 대한 SSH 액세스입니다.

 

 

 

Linux 및 macOS에서 SSH 터널 생성

ssh 클라이언트는 대부분의 Linux 및 Unix 기반 시스템에 미리 설치됩니다. 

Linux 또는 macOS를 운영 체제로 사용하는 경우 다음 명령을 사용하여 SSH 터널을 만들 수 있습니다.

ssh -N -L 3336:127.0.0.1:3306 [USER]@[SERVER_IP]

 

 

사용되는 옵션은 다음과 같습니다. 

-N - SSH에게 원격 명령을 실행하지 말라고 합니다.

-L 3336:127.0.0.1:3306 - 로컬 포트 포워딩을 만듭니다. 로컬 포트(3306), 대상 IP(127.0.0.1) 및 원격 포트(3306)는 콜론(:)으로 구분됩니다.

[USER]@[서버_입니다.IP] - 원격 SSH 사용자 및 서버 IP 주소입니다.

백그라운드에서 명령을 실행하려면 -f 옵션을 사용합니다.

 

SSH 서버가 22가 아닌 다른 포트에서 수신 중인 경우(기본값) -p [PORT_NUMBER] 옵션을 사용하여 포트를 지정합니다.

명령을 실행하면 SSH 사용자 암호를 입력하라는 메시지가 표시됩니다. 입력한 후 서버에 로그인하고 SSH 터널이 설정됩니다. SSH 키 기반 인증을 설정하고 암호를 입력하지 않고 서버에 연결하는 것이 좋습니다.

이제 로컬 시스템 MySQL 클라이언트에게 127.0.1:3336 원격 데이터베이스 로그인 자격 증명을 입력하고 MySQL 서버에 액세스하도록 지정할 수 있습니다.

예를 들어 명령줄 mysql 클라이언트를 사용하여 MySQL 서버에 연결하려면 다음을 실행합니다.

mysql -u MYSQL_USER -p -h 127.0.0.1

 

 

MYSQL_USER는 데이터베이스에 액세스할 수 있는 권한을 가진 원격 MySQL 사용자입니다.

메시지가 표시되면 MySQL 사용자 암호를 입력합니다.

SSH 터널을 종료하려면 SSH 클라이언트가 실행 중인 콘솔에서 CTRL+C를 입력합니다.

 

 

 

Windows에서 SSH 터널 생성

Windows 사용자는 먼저 SSH 클라이언트 프로그램을 다운로드하여 설치해야 합니다. 가장 널리 사용되는 Windows SSH 클라이언트는 PuTY입니다. Pu를 다운로드할 수 있습니다.여기 TTY입니다.

PuTY를 사용하여 MySQL 서버에 대한 SSH 터널을 만들려면 다음 단계를 수행하십시오.

Putty를 시작하고 Host name(또는 IP 주소) 필드에 서버의 IP 주소를 입력합니다.

SSH Tunnel 로 MySQL 연결 방법, 예제, 명령어 1

 

 

연결 메뉴에서 SSH를 확장하고 터널을 선택합니다. 소스 포트 필드에 3306을 입력하고 대상 필드에 127.0.1:3306을 입력합니다.

SSH Tunnel 로 MySQL 연결 방법, 예제, 명령어 2

 

 

터널을 추가하려면 Add 버튼을 클릭합니다.

설정을 다시 입력할 필요가 없도록 세션 페이지로 돌아가 설정을 저장합니다.

[저장된 세션] 필드에 세션 이름을 입력하고 [저장] 단추를 클릭합니다.

SSH Tunnel 로 MySQL 연결 방법, 예제, 명령어 3

 

 

저장된 세션을 선택하고 열기 단추를 클릭하여 원격 서버에 로그인합니다.

SSH Tunnel 로 MySQL 연결 방법, 예제, 명령어 4

 

 

사용자 이름과 암호를 묻는 새 창이 나타납니다. 사용자 이름과 암호를 입력하면 서버에 로그인되고 SSH 터널이 생성됩니다.

공용 키 인증을 설정하면 비밀번호를 입력하지 않고 서버에 연결할 수 있습니다.

이제 로컬 MySQL 클라이언트를 사용하여 원격 데이터베이스에 연결할 수 있습니다.

예를 들어 HeidiSQL을 사용하는 경우 호스트 이름/IP 필드에 127.0.0.1을 입력하고 사용자 및 암호 필드에 MySQL 사용자 및 암호를 입력합니다.

SSH Tunnel 로 MySQL 연결 방법, 예제, 명령어 5

 

 

가장 널리 사용되는 오픈 소스 데이터베이스 서버인 MySQL은 localhost에서만 들어오는 연결을 수신합니다. SSH 터널을 만들면 로컬 클라이언트에서 원격 MySQL 서버에 안전하게 연결할 수 있습니다.

반응형