이번 글에서는 Window 환경에서 Putty와 bash shell을 사용하여 GCP 인스턴스에 연결하는 방법을 다뤄보겠다.
먼저 Putty를 사용하여 GCP 인스턴스에 연결하는 방법이다. 우선 해당 링크를 통해 Putty를 다운 받는다. 그리고 Putty용 SSH키를 생성하기 위해 키 생성 도구인 Puttygen을 다음의 링크에서 다운 받는다.
다운받은 Puttygen을 실행시킨 후 Generate 버튼늘 누르면 키가 생성된다.
키 생성 진행 속도가 느릴 땐 마우스를 움직여주면 빠르게 진행된다.
private key를 잊어버리기 어려운 공간에 저장을 한다. 그리고 public key를 복사해둔다.
저장한 public key를 등록해줘야한다. Compute Engine의 설정 항목에 있는 메타데이터에서 public key를 등록할 수 있다. 수정 버튼을 누른 후 항목 추가를 하여 이전에 복사해 두었던 public key키를 붙여넣고 수정된 내용을 저장한다.
이제 Putty를 통해 인스턴스와 연결할 차례이다. 우선 Putty를 실행시킨 후 이 전에 저장했던 private key를 등록해야 한다.
private key는 Connection 항목의 SSH 안의 Auth에서 등록할 수 있다. Browse 버튼을 통해 아까 저장했던 private key를 등록한다.
Putty로 인스턴스 연결 시 매우 자주 연결이 끊겨 다시 접속하는 일이 생긴다. 이러한 현상은 Connection 항목에서 Seconds between keepalives를 0이 아닌 숫자로 지정한다면 연결 끊김 현상을 방지할 수 있다.
Host Name에 인스턴스의 외부 IP 주소를 넣고 Open을 누르면 콘솔창과 Security Alert를 볼 수 있다.
Security Alert를 수락하고 나면 로그인 화면을 볼 수 있는데, 이전에 등록했던 SSH키의 사용자 이름을 입력하면 인스턴스에 접속하게 된다.
Window에서 linux환경을 사용하기 위해서는 Ubuntu의 bash shell을 사용해야한다. Ubuntu는 Microsoft store에서 무료로 다운받을 수 있다. 다운받은 Ubuntu를 처음 실행시키면 계정생성을 해야하는데, 윈도우 계정과 다른 username을 사용해도 좋다.
bash shell에서 GCP 인스턴스에 연결하기 위해서 먼저 private key를 생성해야한다. 따라서 실행시킨 bash shell에 아래의 명령어를 입력한다. 여기서 KEY_FILENAME은 생성할 SSH 키 파일의 이름이고, USER은 사용자 이름으로 구글 아이디를 입력하면 된다.
ssh-keygen -t rsa -f ~/.ssh/KEY_FILENAME -C USER
명령어를 입력하면, ssh 디렉토리 밑에 key가 생성된 것을 확인할 수 있다.
생성한 public SSH key를 인스턴스 메타데이터에 업로드 해야한다. 따라서 명령어 창에서 cat 명령어로, 생성한 public SSH key의 내용을 출력한 후 복사해둔다.
Compute Engine의 설정 항목에 있는 메타데이터에서 public SSH key를 등록할 수 있다. 수정 버튼을 누른 후 항목 추가를 하여 복사해 두었던 public SSH key키를 붙여넣고 수정된 내용을 저장한다.
이제 인스턴스에 연결할 차례이다. bash shell에 아래의 명령어를 입력하면 된다. PATH_TO_PRIVATE_KEY는 private SSH key 파일 경로이고, USERNAME는 구글 아이디, EXTERNAL_IP는 연결할 인스턴스의 외부 IP주소이다.
ssh -i PATH_TO_PRIVATE_KEY USERNAME@EXTERNAL_IP
bash shell에서 인스턴스와 문제 없이 연결에 성공했다.
참고
https://www.ssh.com/academy/ssh/putty/windows/puttygen#puttygen-download-and-install
https://cloud.google.com/compute/docs/instances/connecting-advanced#thirdpartytools
한국 Elastic 사용자 그룹, 처음부터 시작하는 Elastic, https://www.youtube.com/watch?v=Ks0P49B4OsA&list=PLhFRZgJc2afp0gaUnQf68kJHPXLG16YCf