Cloud Virtual Machine 을 사용하게 되면 기본적으로 쉘 접속은 클라우드에 로그인 한 후 브라우저에 연결된 쉘로 접속하게 된다. (AWS, GCP)
따라서 클라우드 로그인 없이 로컬 PC의 터미널을 활용해 접속하는 방법 정리했다.
ex) Google Cloud Platform
활용
SSH
란 Secure Shell, 원격지 호스트 컴퓨터에 접속하기 위해 사용되는 보안 쉘 이다.
로컬 PC에서는 ssh-keygen
을 사용해서 키 를 생성 할 수 있다.
ip_rsa.pub
디폴트 키로 적용해도 되나 나는 VM용으로 따로 만들었다. (계속 오류가 났음..🥲)
# 키 생성 명령어
ssh-keygen -t rsa -f ~/.ssh/[키 파일 이름] -C [username = GCP계정]
ssh-keygen -t rsa -f ~/.ssh/gcp_key -C hyerihello@gmail.com
# 생성된 키 열어서 확인 명령어
cat ~/.ssh/[키 파일 이름]
cat ~/.ssh/gcp_key.pub
✅ 여기서 잠깐!
.ssh 폴더를 열어서 확인 하면 이름이 비슷한 2개의 파일을 볼 수 있는데
gcp_key.pub = public key (공개키)
gcp_key = private key (비밀키)
이다.
# 숨겨져 있는 폴더 보는 명령어
cd ~/.[폴더명]
cd ~/.ssh
ls -al
원격 연결을 위해서는 public key가 필요하기 때문에 gcp_key.pub
를 사용한다!
로컬 PC에서 생성했던 ~/.ssh/gcp_key.pub
내용을 복사 후
GCP 서버의 ~/.ssh/authorized_keys
에 추가해야 한다.
GCP shell 에서
vi ~/.ssh/authorized_keys
i
를 입력하면 insert 모드로 수정이 가능하며, 로컬 에서 복사했던 gcp_key.pub
내용을 붙여넣고esc
를 누르면 읽기 모드로 다시 변환 된다.:wq
를 누르면 수정사항이 저장되고 빠져나온다. (참고, 저장하지 않고 빠져나오려면 :q
사용)잘 저장되었는지 확인한다.
cat ~/.ssh/authorized_keys
클라우드 브라우저로 돌아가서 Key를 추가로 등록해줘야한다.
Compute Engine > 메타데이터 > SSH키 > 수정 또는 항목추가 > gcp_key.pub 입력 > 저장
참고, 나는 등록한 키가 두 개여서 아래와 같이 나오지만 한 개만 등록 할 시 하나만 나온다.
https://console.cloud.google.com/compute/metadata?project=solar-semiotics-366106&tab=sshkeys
VM인스턴스로 돌아가서 외부 IP 확인한다.
로컬 PC로 돌아와 shell 에 접속 명령어를 입력한다.
ssh -i {로컬pc의 키파일 경로} {VM의 user계정이름}@{VM의 외부 ip}
ssh -i /Users/ila/.ssh/gcp_key hyerihello@34.64.***.***
연결 성공 ~!
수고하셨습니다 👍