AWS EC2, GCP VM Instance에 SSH로 접속하기 with Ubuntu
AWS EC2, GCP VM Instance에 SSH로 접속하는 법을 간단히 정리한다.
주의
이 방법은 보안이슈가 생길 수 있기 때문에 실무환경보다는 테스트환경에서 사용하기 쉬운 방법이다.
AWS EC2에 접속
0. AWS Private Key 사용하는 법
먼저, EC2 생성 시에 Key pair를 생성하고 Private Key를 발급받는다. Security Group(보안그룹) 설정 시 IP를 원하는 대로 설정한다.
Private Key는 한 번만 발급해주기 때문에 잘 관리해야 한다. 잃어버릴 경우, 복잡한 과정을 거쳐서 새로 Key를 다시 등록해야 한다.
그 후, Private Key 파일의 권한 설정을 변경하고 SSH로 접속한다.
sudo chmod 400 ~/aws_ec2_test.pem
# ubuntu의 default 사용자명은 ubuntu
ssh -i ~/aws_ec2_test.pem ubuntu@[Public DNS or IP]
참고 : Amazon Linux 인스턴스의 사용자 계정 관리 - AWS 설명서
파란 부분은 SSH로 처음 접속할 경우 known_hosts에 instance를 등록하는 모습이고
빨간 부분은 Private Key 권한 설정을 하지 않았을 경우, 생기는 오류이다.
참고로, user(owner)만 읽을 수 있도록 권한이 변경된다.
1. EC2 INSTANCE CONNECT
만약, EC2 Instance를 여러 사람이 공유하는 경우, Private Key를 공유해야 하는 보안 이슈가 생길 수 있다.
EC2 INSTANCE CONNECT 방식은 AWS CLI를 활용해 IAM과 연동하여 접속할 수 있다.
추가해야 할 IAM 권한은 아래 reference 링크에서 확인할 수 있다.
이 방식은 매번 임시의 SSH KEY를 발급해 등록 후 사용하는 방식이라고 한다.
먼저, SSH를 통해 인스턴스에 접근 후 인스턴스용 패키지를 설치해야 한다.
Install EC2 Instance Connect on an instance - AWS
# Ubuntu의 경우
sudo apt update
sudo apt upgrade
sudo apt install ec2-instance-connect
로컬 PC에 EC2 CLI CONNECT 패키지를 설치한다.
pip install ec2instancecli
mssh라는 명령어를 통해 EC2 instance에 접근한다. ( 별도의 mssh 패키지가 아니다.)
mssh ubuntu@[instance ID]
# scp 역할을 하기 위해 다음처럼 활용
rsync -a -e mssh [로컬 파일] ubuntu@[instance ID]:/home/ubuntu/[파일명]
GCP VM Instance에 접속
GCP는 SSH Key를 직접 생성하고 등록하는 작업을 해야 한다. 2가지 방법으로 설정할 수 있다.
0. SSH Key 생성하기
# ssh-keygen -t rsa -f ~/.ssh/[KEY_FILENAME] -C [USERNAME]
ssh-keygen -t rsa -f ~/.ssh/gcp_ssh_test -C yahwang
gcp_ssh_test와 gcp_ssh_test.pub 파일이 생성된다.
1. 웹 console에서 등록하는 법
public key 파일 내용을 복사해서 Compute Engine - Metadata에 등록한다.
SSH KEY 생성 시 설정한 사용자명으로 로그인된다.
2. gcloud sdk로 등록하는 법
OS 로그인 방식이라고 한다. OS 로그인은 Google 계정과 연결하여 많은 사용자를 관리하는 데 권장되는 방법이라고 한다.
참고 : OS 로그인의 이점
먼저, Project 또는 해당 instance에 OS login 사용 설정을 해야 한다. 웹 console에서 직접 또는 gcloud 명령어로 설정 가능하다.
# gcloud compute os-login ssh-keys add --key-file [public key]
gcloud compute os-login ssh-keys add --key-file ~/.ssh/gcp_ssh_test.pub
G Suite와 연동해 설정하지 않을 경우, 이메일 주소로 사용자명이 설정된다.
터미널 ssh config 등록
~/.ssh/config 파일에 다음과 같이 입력하면 터미널에서 간편하게 접속할 수 있다.
# ssh [Host 명]
ssh aws_ssh
References
: