GCP에 웹 서버 배포하기 1 - GCP 무료 인스턴스 생성
지난 글에서는 인스턴스를 생성하고 브라우저에서 접속을 했다.
이번에는 터미널의 ssh를 통해 접속해보려고 한다.
여기서 SSH란?
시큐어 셸(Secure SHell, SSH)은 네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해 주는 응용 프로그램 또는 그 프로토콜을 가리킨다. 기존의 rsh, rlogin, 텔넷 등을 대체하기 위해 설계되었으며, 강력한 인증 방법 및 안전하지 못한 네트워크에서 안전하게 통신을 할 수 있는 기능을 제공한다. 기본적으로는 22번 포트를 사용한다.
SSH는 암호화 기법을 사용하기 때문에, 통신이 노출된다고 하더라도 이해할 수 없는 암호화된 문자로 보인다.
(출처 : 위키백과 https://ko.wikipedia.org/wiki/%EC%8B%9C%ED%81%90%EC%96%B4_%EC%85%B8 )
터미널에서 인스턴스 접속하고 싶은 이유는?
1. 매번 웹사이트에 들어가는 것은 상당히 귀찮은 일이다.
2. 미국에 있어서 그런건지, 사양이 안좋아서 그런건지 딜레이가 꽤 있다.
3. 내가 꾸며놓은 터미널이 더 예쁘고 익숙하다.
방법
1. SSH키를 생성한다.
공식홈페이지에 잘 나와있다. https://cloud.google.com/compute/docs/connect/create-ssh-keys?hl=ko
# 홈페이지에 나와있는 것
ssh-keygen -t rsa -f ~/.ssh/KEY_FILENAME -C USERNAME -b 2048
# 디폴트값이 2048 이기 때문에 -b 2048은 필요 없음
ssh-keygen -t rsa -f ~/.ssh/{파일 이름} -C {GCP 계정 이메일}
# 여기서 파일이름이 gcp 라면 {파일 이름} 모두를 gcp로 치환해야 한다.
# 파일이름이 practice 라면 아래와 같다.
ssh-keygen -t rsa -f ~/.ssh/practice -C gdj03094@gmail.com
비밀번호 입력하는 창이 나오는데 그냥 없이 엔터만 해도 되고 비밀번호를 만들어도 된다.
그럼 "파일이름.pub" 파일과 "파일이름" 파일이 생긴다.
pub은 public 으로 공개키를 의미하고, 그냥 파일이름은 비밀키이다.
2. 만든 공개키 얻기
공개키로는 비밀키를 검증할 순 있지만 알아낼 수 없다.
반대로 비밀키로는 공개키를 알아낼 수 있다.
즉 공개키는 열쇠고, 비밀번호는 열쇠구멍인데 구글 혹은 인스턴스에게 열쇠를 주고 맞는 열쇠구멍을 갖고오는 사람만 쓸 수 있게 하는 것이다.
그래서 우리는 공개키를 GCP 콘솔에 입력을 해야한다.
그럼 공개키는 어디서 얻느냐
~/.ssh/ 폴더에 들어가서 vim 을 통해서 직접 확인도 가능하고
cat ~/.ssh/practice.pub 명령어를 통해 확인 가능하다.
그럼 아래 형태의 공개키를 얻을 수 있을 것이다.
ssh-rsa AAAAB ...중략... bqNc= gdj03094@gmail.com
3. GCP콘솔에서 SSH 키 설정
compute engine 탭 -> 밑으로 내리면 -> 메타데이터
수정이나 추가해서 공개키 붙여넣어주면 된다.
사실 공개키는 유출되어도 전혀 문제없긴 하지만.. 그냥 찝찝했다.
4. 접속
ssh -i {비밀키 위치} {계정이름}@{인스턴스 외부 ip}
# 예시
ssh -i ~/.ssh/practice uzzam@123.123.123.123
처음 접속하면 뭐라고 뜬다. Y 누르면 알아서 등록되고 다음부턴 물어보지 않는다.
굿~👍
다음 글에서는 스왑 메모리를 사용해서 빌드가 성공할 수 있도록..
'cloud' 카테고리의 다른 글
GCP에 웹 서버 배포하기 5 - 포트 열기 (0) | 2023.05.27 |
---|---|
GCP에 웹 서버 배포하기 4 - 고정 ip 생성 (0) | 2023.05.10 |
GCP에 웹 서버 배포하기 3 - 스왑 메모리 사용 (0) | 2023.05.08 |
GCP에 웹 서버 배포하기 1 - GCP 무료 인스턴스 생성 (0) | 2023.05.05 |