구글 클라우드 플랫폼(GCP) VM 인스턴스에 ssh 툴(모바x)을 이용해 접속하는 방법 (ssh-keygen)

GCP에 생성한 VM에 3rd 파티 SSH 툴인 모바X텀을 사용해서 접속하겠습니다. ssh-keygen 명령어로 퍼블릭키(public key)와 개인키(private key)를 RSA 알고리즘을 사용하여 생성할 것입니다.

  • Putty나 MobaXterm 같은 ssh 툴로 접속하고자 하는 vm instance에 먼저 키를 생성하고 등록해야 합니다. GCP 콘솔에서 해당 VM에 아래의 이미지처럼 SSH를 누르고 접속합니다. (클라우드쉘이나 클라우드 SDK를 설치한 cmd 창에서도 ssh 접속을 할 수 있습니다.)
* IP 주소 보이는 거 알고 있습니다. ㅎㅎ 드루와 드루와!

  • /home/<유저>/.ssh 경로로 들어가서 키들이 있는지 확인합니다.

키가 생성되는 .ssh 경로

  • 3rd party tool 에서 사용할 키를 생성합니다. ssh-keygen -t rsa -f ~/.ssh/jin -C jin
ssh-keygen을 이용해 키생성
* passphrase를 물을 때 입력을 안하셔도 됩니다. 입력하시면 더 안전합니다. 
** -t 옵션은 생성하고자 하는 키 타입, -f 옵션은 파일이름을 포함한 경로, -C 옵션은 comment라고는 설명에 나오지만 여기에 입력하신 게 사용자아이디가 됩니다. 입력안하시면 디폴트로 현재 사용중인 계정이 아이디로 만들어집니다. (예를 들어, 현재 사용하고 있는 gp 아이디(G메일 계정)가 디폴트 유저로 됩니다. 뒷부분에서 보여 드리겠습니다.

  • .ssh 폴더에 공개키(public key)인 jin.pub 키와 개인키(private key)인 jin 키가 생성된 것을 확인하실 수 있습니다. RSA 알고리즘을 사용하였습니다.
  • cat 명령어로 두 키를 살펴봅니다.
  • 공개키를 서버에 등록해야 합니다. jin.pub을 열고 내용 전부를 복사해서 메모장에 붙여넣습니다.

  • 메모장으로 옮긴 이유는 키를 붙여야하기 때문입니다. 메모장에 옮겨서 작업하지 않고 터미널에서 복사한 부분을 등록하려고 하면 공백 때문에 인식을 못합니다. 저도 이부분 때문에 오래 삽질했습니다. 메모장에서 여러 줄로 나누어진 키를 한 줄로 만듭니다. 참고로 제일 앞에 ssh-rsa와 제일 마지막 jin 부분에는 한 칸 공백이 있어야합니다.

  • VM 인스턴스를 클릭하고 EDIT을 클릭해서 SSH Keys 영역으로 가서 Add item을 클릭하고 네모칸 안에 작업한 공개키를 넣습니다. 그러면 자동으로 왼쪽에 jin 이라고 인식합니다. 그리고 Save하세요. (만약 메모장 작업을 하지 않으면 왼쪽에 jin이라는 글자가 뜨지도 않고, 나중에 다시 페이지로 들어오면 키가 한 개가 아니라 공백때문에 5개 이상으로 나누어져 있고 인식할 수 없다는 오류메세지만 5개 이상 떠있습니다.) 이것까지 다 보여드리고 싶지만 시간 관계상 생략. 제가 때론 너무 자세하게 설명해서 자제 중입니다. 제가 설명충입니다요.
인스턴스 클릭


인스턴스에 ssh 키 등록
Edit 클릭



인스턴스에 ssh 키 등록
SSH 영역에서 Show and edit 눌러서 펼치고


인스턴스에 ssh 키 등록
Add item 버튼 클릭



인스턴스에 ssh 키 등록
네모칸에 키 입력 (왼쪽에 아이디 자동 생성) & Save 하는 거 잊지마세요.


* -C 옵션으로 입력한 jin이 사용하게 되실 사용자아이디가 됩니다. 만약 -C 옵션을 입력안하셨으면 저의 경우엔 저기에 gp라고 뜹니다. (gp는 제가 gcp 콘솔에 접속하기 위해 사용한 구글 계정입니다.) 

  • 퍼블릭 키는 서버에 등록이 되었고, 이제 개인키를 다운로드 받아 로컬에 저장하고 모바X와 같은 ssh 툴을 사용할 때 사용합니다. 대칭키 암호 동작 원리는 설명해 드리고 싶으나 시간 관계상 패스(제가 정보보안기사 필기만 2번 합격했습니다!!!) pwd 명령어로 경로를 확인하고 창 오른쪽 상단의 톱니바퀴를 클릭하고 Download file 을 선택하고 절대 경로를 입력해 다운로드 받습니다. 공개키가 아니라 개인키 다운받아야합니다. ( .pub 가 공개키입니다.) 
GCP 터미널에서 파일 다운로드 하기
톱니바퀴 > Download file

GCP 터미널에서 파일 다운로드 하기
개인키가 위치한 경로 입력
  • 드뎌 mobaxterm을 열고 아래와 같이 ip 주소, 사용할 유저아이디 (키를 만들 때 포함한 정보로 생성된 사용자 아이디) , 가장 중요한 Use private key 체크하고 다운로드 받은 개인키를 선택합니다. ssh 툴의 종류에 따라 개인키를 변환해야 할 때도 있습니다. 모바x는 그런게 없어서 편합니다. 
 ssh툴에서 키를 이용해 vm 인스턴스 접속하기
  • 접속에 성공하면 아래와 같은 화면이 뜹니다. jin@jin에서 앞에 jin은 아이디 @ 뒤는 서버 인스턴스 이름입니다. 
ssh툴에서 키를 이용해 vm 인스턴스 접속하기
  • root 계정으로 바꾸고 싶으시면 sudo -i 를 입력하시면 되고 나오시려면 exit 입니다. 

  • 참고로 사용자아이디@ip주소로 연결하셔도 됩니다.
ssh툴에서 키를 이용해 vm 인스턴스 접속하기

Comments