AWS EC2, GCP VM Instance에 SSH로 접속하기 with Ubuntu

게시일 : 2020년 07월 22일     수정일 : 2020년 08월 20일    
# ssh # AWS # GCP

AWS EC2, GCP VM Instance에 SSH로 접속하는 법을 간단히 정리한다.

주의

이 방법은 보안이슈가 생길 수 있기 때문에 실무환경보다는 테스트환경에서 사용하기 쉬운 방법이다.

AWS EC2에 접속

0. AWS Private Key 사용하는 법

먼저, EC2 생성 시에 Key pair를 생성하고 Private Key를 발급받는다. Security Group(보안그룹) 설정 시 IP를 원하는 대로 설정한다.

Private Key는 한 번만 발급해주기 때문에 잘 관리해야 한다. 잃어버릴 경우, 복잡한 과정을 거쳐서 새로 Key를 다시 등록해야 한다.

aws_ssh_1

그 후, 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 권한 설정을 하지 않았을 경우, 생기는 오류이다.

aws_ssh_2

참고로, user(owner)만 읽을 수 있도록 권한이 변경된다.

aws_ssh_3

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/[파일명]

aws_ec2connect

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에서 등록하는 법

gcp_ssh_1

public key 파일 내용을 복사해서 Compute Engine - Metadata에 등록한다.

gcp_ssh_2

SSH KEY 생성 시 설정한 사용자명으로 로그인된다.

gcp_ssh_3

2. gcloud sdk로 등록하는 법

OS 로그인 방식이라고 한다. OS 로그인은 Google 계정과 연결하여 많은 사용자를 관리하는 데 권장되는 방법이라고 한다.

참고 : OS 로그인의 이점

먼저, Project 또는 해당 instance에 OS login 사용 설정을 해야 한다. 웹 console에서 직접 또는 gcloud 명령어로 설정 가능하다.

gcp_ssh_6

# 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와 연동해 설정하지 않을 경우, 이메일 주소로 사용자명이 설정된다.

gcp_ssh_5

gcp_ssh_4

터미널 ssh config 등록

~/.ssh/config 파일에 다음과 같이 입력하면 터미널에서 간편하게 접속할 수 있다.

# ssh [Host 명]
ssh aws_ssh

ssh_config

References :