EC2 인스턴스를 만들면 “서버 한 대”가 생긴 거다.
근데 서버를 만들었다고 끝이 아니라, 결국 우리가 해야 하는 건 이거다.
내 노트북(맥) → EC2(원격 서버)로 접속해서 작업하기
AWS에서는 EC2 접속을 기본적으로 SSH로 한다. (리눅스 서버 원격 접속 표준)
준비물 체크 (이거 없으면 접속이 안 됨)
SSH 접속에 필요한 건 딱 3개다.
- 키페어 파일(.pem)
- 인스턴스 생성할 때 다운로드했던 파일
- EC2 퍼블릭 IPv4 주소 또는 퍼블릭 DNS
- 보안그룹 인바운드 규칙에서 22번(SSH) 포트가 열려있기
특히 3번은 진짜 중요하다.
서버로 “들어가는 문(22번)”이 안 열려 있으면 아무리 SSH 명령어를 잘 쳐도 접속이 안 된다.
✅ 보안그룹 인바운드 예시
- Type: SSH
- Port: 22
- Source: 내 IP/32 (추천) 또는 임시로 0.0.0.0/0 (비추천)
.pem 파일을 안전한 위치로 옮기기
키페어는 사실상 “서버 열쇠”다.
다운로드 폴더에 두고 쓰기보다, SSH 전용 폴더에 넣어두는 게 관리하기 편하다.
예시:
mkdir -p ~/.ssh/ec2
mv ~/Downloads/my-keypair.pem ~/.ssh/ec2/
이제 키 파일 경로는 이렇게 된다.
~/.ssh/ec2/my-keypair.pem
macOS에서 반드시 해야 하는 것: .pem 권한 설정 (chmod 400)
SSH는 보안이 핵심이라서, 키 파일 권한이 “너무 열려있으면” 접속을 차단한다.
즉,
“이 키 파일을 다른 사람도 읽을 수 있네? 그럼 위험하니까 사용 불가.”
그래서 권한을 잠가줘야 한다.
chmod 400 ~/.ssh/ec2/my-keypair.pem
chmod 400이 의미하는 것
- 소유자만 읽기 가능
- 나머지는 접근 불가
이 설정을 안 하면 이런 에러를 자주 본다:
- Permissions 0644 for 'my-keypair.pem' are too open
- It is required that your private key files are NOT accessible by others
SSH 접속 명령어 기본 형태
이제 진짜 접속한다.
SSH 기본 형태는 이거다.
여기서 헷갈리는 건 두 가지다.
- 사용자명(리눅스 계정)
- 서버주소(퍼블릭 IP / DNS)
사용자명은 AMI(OS)에 따라 다르다
EC2는 “어떤 OS 이미지를 선택했는지(AMI)”에 따라 기본 사용자명이 다르다.
대표적으로 이렇다.
- Ubuntu AMI → ubuntu
- Amazon Linux 2 / Amazon Linux 2023 → ec2-user
- CentOS → centos
- Debian → admin 또는 debian
우분투로 만들었다면 보통 이거다:
EC2 퍼블릭 IP 확인하는 법
AWS 콘솔 → EC2 인스턴스 목록 → 해당 인스턴스 클릭 → 오른쪽 상세에서 확인:
- Public IPv4 address
- Public IPv4 DNS
둘 중 아무거나 써도 접속 가능하다.
예시 (IP로 접속):
ssh -i ~/.ssh/ec2/my-keypair.pem ubuntu@15.165.xxx.xxx
예시 (DNS로 접속):
ssh -i ~/.ssh/ec2/my-keypair.pem ubuntu@ec2-15-165-xxx-xxx.ap-northeast-2.compute.amazonaws.com
처음 접속할 때 나오는 “fingerprint” 질문 (정상)
처음 접속하면 이런 문구가 뜬다:
The authenticity of host ... can't be established.
Are you sure you want to continue connecting (yes/no)?
이건 “처음 보는 서버라 신뢰해도 되냐?”는 질문이다.
- 내 EC2가 맞으면 yes 입력
- 그러면 다음부터는 known_hosts에 저장돼서 질문 안 뜸
접속 성공하면 뭐가 보이냐?
정상 접속되면 터미널 프롬프트가 바뀐다. 예를 들면:
이 상태가 되면 끝이다.
내 맥 터미널에서 입력하는 명령이
이제 EC2 서버에서 실행된다.
자주 터지는 에러 3개만 빠르게 정리
(1) Permission denied (publickey)
거의 대부분 원인이 이거다.
- 사용자명이 틀림 (ubuntu vs ec2-user)
- 키파일이 다른 인스턴스 키임
- 인스턴스 생성할 때 그 키페어가 연결된 게 맞는지 확인 필요
(2) Connection timed out
이건 “서버까지 길이 막힘”이다.
- 보안그룹에서 22번 포트 안 열림
- Source IP 범위를 너무 좁게 잡음 (내 IP 바뀜)
- 인스턴스가 running 상태가 아님
(3) Permissions too open
chmod 안 했거나 권한이 풀려있음
chmod 400 ~/.ssh/ec2/my-keypair.pem
'Infra > AWS' 카테고리의 다른 글
| EC2 세팅 - 스토리지 (0) | 2026.01.28 |
|---|---|
| EC2 세팅 - 보안 그룹 (0) | 2026.01.28 |
| EC2 세팅 - 헷갈렸던 것들 정리 (0) | 2026.01.28 |
| EC2란? (0) | 2026.01.28 |
| 배포란? - localhost에서 끝나면 서비스가 아니다 (0) | 2026.01.28 |