1. vi ~/.ssh/config : 리눅스/Unix 계열 시스템에서 SSH 설정 파일을 편집하는 명령어
SSH 설정 파일을 수정할 수 있게 된다.
여기서 SSH 접속할 서버들의 정보(호스트명, 포트, 사용자 이름 등)를 설정.
마치 전화번호부처럼 자주 접속하는 서버들의 정보를 미리 저장해두는 파일이라고 생각
2. config파일에서 추가
Host dev-bastion : 이 설정을 적용할 호스트의 별칭을 "dev-bastion"으로 지정
HostName 211.254.215.xxx : 실제 연결할 서버의 IP 주소
User root : 접속할 사용자 계정을 root로 지정
Port 64022 : SSH 연결에 사용할 포트 번호 (기본 22 포트 대신 64022 사용)
PreferredAuthentications password : 인증 방식을 패스워드 방식으로 설정
PubkeyAuthentication no : 공개키 인증을 비활성화
StrictHostKeyChecking no : 호스트 키 검증을 비활성화
3. ssh -CN -L13306:172.27.0.143:3306 dev-bastion
ssh -CN -L13306:172.27.0.143:3306 dev-bastion를 하나씩 분석해보면,
-C: 데이터를 압축해서 전송
-N: 원격 명령어는 실행하지 않고, 포트 포워딩만 함
-L13306:172.27.0.143:3306 : 내 컴퓨터의 13306 포트를 172.27.0.143 서버의 3306 포트로 연결
dev-bastion: 중간 경유 서버 (config 파일에 설정된 이름)
내 컴퓨터(13306) → dev-bastion(중간 서버) → DB 서버(172.27.0.143:3306)
이렇게 하는 이유는 보안 때문에 중간 서버를 두는 것이다.
데이터베이스 서버에 직접 접속하지 않고, SSH로 암호화된 안전한 터널을 통해 접속
이제 localhost:13306으로 접속하면, 안전한 터널을 통해 실제 DB 서버(개발)에 연결!!
4. application.properties(local 변경)
ssh -CN -L13306:172.27.0.143:3306 dev-bastion
내 컴퓨터의 13306 포트를 DB가 있는 서버(172.27.0.143)의 3306 포트로 연결하므로 url은 로컬:13006
spring.datasource.url=jdbc:mysql://127.0.0.1:13306/RNDB2...
spring.datasource.username:개발서버ID
spring.datasource.password:개발서버PW