2021. 6. 29. 15:47ㆍDevTips
위 그림과 같은 상황을 가정해보자. 시스템을 운영하다 보면 보안상 VM2로는 바로 SSH 접속을 할 수 없고 VM1을 거쳐야만 접속해야 하는 경우가 생길 수 있다. 여기에서 VM1은 Bastion 서버 또는 Jump 서버로 불린다. 이 때 VM2에 있는 소스코드를 VS Code 로 어떻게 연동할 수 있을까?
먼저 VS Code 와 VM 연동에 필요한 기본적인 내용은 VS Code 와 Google Compute Engine을 연동해보자 (Remote SSH)에서 다루었으니 참고 바란다. VM1,2 는 모두 Ubuntu 20.04 임을 가정한다.
VM1, 2의 openSSH (Private Key) 키 준비
VM1, 2에서 생성한 Private Key 를 VS Code 가 있는 PC 에 다운로드 받는다. Private Key 인만큼 다른 곳으로 유출되지 않도록 하고, 신뢰할 수 있는 PC에 저장할 수 있도록 한다. 본 블로그에서는 vm1-key.pem, vm2-key.pem 이라는 파일명으로 C:\Users\Jongchan Park\.ssh 에 저장하였다.
SSH Config 파일 수정
아래와 같이 SSH Config 파일을 수정해준다. 생각보다 매우 간단하다.
입력형식
Host <VM1 호스트명 (임의입력 가능)>
HostName <VM1 IP>
User <VM1 의 계정명>
IdentityFile <VM1의 private key 경로>
Host <VM2 호스트명 (임의입력 가능)>
HostName <VM2 IP>
User <VM2 의 계정명>
IdentityFile <VM2의 private key 경로>
ProxyCommand C:\Windows\System32\OpenSSH\ssh.exe -q -W %h:%p <VM1 호스트명>
예시
Host vm1
HostName 165.244.244.43
User itspjc
IdentityFile C:\Users\Jongchan Park\.ssh\vm1-key.pem
Host vm2
Hostname 192.168.0.10
User itspjc
IdentityFile C:\Users\Jongchan Park\.ssh\vm2-key.pem
ProxyCommand C:\Windows\System32\OpenSSH\ssh.exe -q -W %h:%p vm1
접속 확인
해당내용을 저장하면 왼쪽 REMOTE EXPLORER 창에 vm1, vm2 접속 메뉴가 생성된다. vm2 에 접속하여 정상적으로 접속이 가능한지 확인해보자.
해당화면이 뜨면 정상적으로 VM2 과 VS Code가 연동이 된 것이다. Open Folder 를 눌러서 VS Code 사용을 시작하면 된다.
마치며
해당 방법을 이용하면 vm3, vm4 ... 까지도 계속 연쇄되어 SSH 접속하는 케이스에도 얼마든지 적용 가능하다. 다만 이럴 경우 PC에 담고 있는 Private Key 가 많아지니 보안상 좋은 케이스라고는 보기 어려울 수 있겠다.
'DevTips' 카테고리의 다른 글
Linux Terminal 에 Git branch + Conda 환경 동시에 표시하기 (0) | 2022.07.17 |
---|---|
SSH 접속오류 해결방법 - WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! (1) | 2022.03.03 |
SSH Key 파일명을 내맘대로 변경후 github 등에 접속 안될 때 (0) | 2021.11.20 |
새로운 윈도우 터미널 써보세요 (Windows Terminal) (0) | 2021.08.31 |
사내 서버에 Web 메신저 구축하기 (Rocketchat) (2) | 2021.08.29 |