- References
-
(Powershell을 이용한 SSH 접속 실습)
※ EC2 환경 세팅
- EC2 정보 및 상태 확인 방법 (AWS Console / AWS CLI / AWS Tools for Windows PowerShell)
- Amazon EC2 콘솔 화면에서 확인
- AWS CLI : describe-instances 명령 사용(https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html)
- AWS Tools for Windows PowerShell : Get-EC2Instance 명령 사용 (https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html)
- EC2 SSH 접속 전 확인 사항 및 사전 조건
- Linux 로 생성 된 EC2 의 인스턴스 상태 확인
- EC2 Instance ID 확인
- EC2 인스턴스의 퍼블릭 DNS 이름 가져오기
- (IPv6 사용 시) 인스턴스의 IPv6 주소 확인
- EC2 사용자(User) 이름 및 패스워드 확인
AMI | 기본 사용자 이름 |
Amazon Linux2 / Amazon Linux | ec2-user |
CentOS | centos 또는 ec2-user |
Debian | admin |
Fedora | fedora 또는 ec2-user |
RHEL | ec2-user 또는 root |
SUSE | ec2-user 또는 root |
Ubuntu | ubuntu |
Oracle | ec2-user |
Bitnami | bitnami |
- 인스턴스로 인바운드 트래픽이 활성화 되어있는지 확인
- IP 주소에서 인스턴스로 인바운드 SSH 트래픽을 활성화 - VPC의 기본 보안 그룹(≈ EC2의 방화벽기능)은 기본적으로 수신 SSH를 허용하지 않음으로 SSH 트래픽 활성화 필요
- Amazon EC2 콘솔 또는 타사 도구를 사용한 키 페어 생성 및 프라이빗 키 확인
- https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesConnecting.html#replacing-lost-key-pair (개인 키 분실 시 Trouble Shooting)
- Linux / Mac OS 로 SSH 클라이언트를 사용하여 EC2에 접속하려면 프라이빗 키를 읽을 수 있도록 권한 설정이 필요하다 ( chmod 400 {key-pair-name}.pem )
- (선택 사항) RSA 키 지문 확인
- 중간자 공격으로부터 보호를 위해 RSA 키 지문을 확인 가능 (AWS CLI : get-console-output 명령 사용)
※ 로컬 PC 세팅
- EC2 접속 전 로컬 PC 사전 세팅
- SSH 클라이언트가 설치 되어있는지 확인
- 기본적으로 SSH 클라이언트가 설치 되어 있음
- 명령 줄에 ssh 를 쳐서 확인하고, 인식되지 않는다면 SSH 클라이언트를 설치 해야 한다. (OpenSSH 다운)
※ EC2 접속 (SSH)
- SSH 를 사용한 EC2 인스턴스 연결
- PowerShell, PuTTY, WSL 모두 SSH 를 사용하여 접속하는 방식
- 단, PuTTY 이용 시 PuTTYgen 을 사용하여 프라이빗 키 변환 필요(.pem -> .ppk) (https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/putty.html)
- STEP 1. SSH 명령으로 EC2 접속
# (퍼블릭 DNS) 인스턴스의 퍼블릭 DNS 이름을 사용하여 연결ssh -i /path/key-pair-name.pem instance-user-name@instance-public-dns-name## (선택 사항) (IPv6) 또는 인스턴스에 IPv6 주소가 있는 경우 인스턴스의 IPv6 주소를 사용하여 연결ssh -i /path/key-pair-name.pem instance-user-name@instance-IPv6-address

- STEP 2. 응답 확인 후 yes 입력

※ EC2, 로컬 간 파일 전송 (SCP)
- SCP(Secure Copy Protocol) 클라이언트를 사용한 Linux EC2 인스턴스로 파일 전송
- 대부분의 Linux, Unix 및 Mac OS에는 기본적으로 SCP 클라이언트가 설치 포함
- 명령 줄에 scp 를 쳐서 확인
- OpenSSH에는 SCP 클라이언트를 포함하는 전체 SSH 도구 무료 구현 제공
- SCP를 사용한 Client 컴퓨터와 EC2 인스턴스 간 파일 전송
- STEP 1. SCP 명령을 사용한 EC2 인스턴스로 파일 전송
# (퍼블릭 DNS) 인스턴스의 대상으로 파일을 전송하려면 컴퓨터에서 다음 명령을 입력scp -i /path/key-pair-name.pem /path/my-file.txt ec2-user@instance-public-dns-name:path/## (선택 사항) (IPv6) 인스턴스에 IPv6 주소가 있는 경우 인스턴스의 대상으로 파일을 전송하려면 컴퓨터에서 다음 명령을 입력, IPv6 주소는 이스케이프된([ ]) 대괄호(\)로 묶어야 함scp -i /path/key-pair-name.pem /path/my-file.txt ec2-user@\[instance-IPv6-address\]:path/
- STEP 2. EC2 인스턴스에서 로컬 컴퓨터로 파일 전송
# (퍼블릭 DNS) 컴퓨터의 대상으로 파일을 전송하려면 컴퓨터에서 다음 명령을 입력scp -i /path/key-pair-name.pem ec2-user@instance-public-dns-name:path/my-file.txt path/my-file2.txt## (선택 사항) (IPv6) 컴퓨터에 IPv6 주소가 있는 경우 인스턴스의 대상으로 파일을 전송하려면 컴퓨터에서 다음 명령을 입력, IPv6 주소는 이스케이프된([ ]) 대괄호(\)로 묶어야 함.scp -i /path/key-pair-name.pem ec2-user@\[instance-IPv6-address\]:path/my-file.txt path/my-file2.txt