맥에서 EC2 접속하기

2026. 1. 28. 19:07·Infra/AWS

 

EC2 인스턴스를 만들면 “서버 한 대”가 생긴 거다.
근데 서버를 만들었다고 끝이 아니라, 결국 우리가 해야 하는 건 이거다.

내 노트북(맥) → EC2(원격 서버)로 접속해서 작업하기

 

AWS에서는 EC2 접속을 기본적으로 SSH로 한다. (리눅스 서버 원격 접속 표준)

 

 

준비물 체크 (이거 없으면 접속이 안 됨)

SSH 접속에 필요한 건 딱 3개다.

  1. 키페어 파일(.pem)
    • 인스턴스 생성할 때 다운로드했던 파일
  2. EC2 퍼블릭 IPv4 주소 또는 퍼블릭 DNS
  3. 보안그룹 인바운드 규칙에서 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 기본 형태는 이거다.

 
ssh -i "키파일경로" 사용자명@서버주소

여기서 헷갈리는 건 두 가지다.

  1. 사용자명(리눅스 계정)
  2. 서버주소(퍼블릭 IP / DNS)

 

 

사용자명은 AMI(OS)에 따라 다르다

EC2는 “어떤 OS 이미지를 선택했는지(AMI)”에 따라 기본 사용자명이 다르다.

대표적으로 이렇다.

  • Ubuntu AMI → ubuntu
  • Amazon Linux 2 / Amazon Linux 2023 → ec2-user
  • CentOS → centos
  • Debian → admin 또는 debian

우분투로 만들었다면 보통 이거다:

ssh -i ~/.ssh/ec2/my-keypair.pem ubuntu@<EC2_PUBLIC_IP>
 
 

 

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에 저장돼서 질문 안 뜸

 

 

접속 성공하면 뭐가 보이냐?

정상 접속되면 터미널 프롬프트가 바뀐다. 예를 들면:

 
ubuntu@ip-172-31-xx-xx:~$

이 상태가 되면 끝이다.

내 맥 터미널에서 입력하는 명령이
이제 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
'Infra/AWS' 카테고리의 다른 글
  • EC2 세팅 - 스토리지
  • EC2 세팅 - 보안 그룹
  • EC2 세팅 - 헷갈렸던 것들 정리
  • EC2란?
sqaxe1
sqaxe1
woojoo-devlog 님의 블로그 입니다.
  • sqaxe1
    Woojoo's Devlog
    sqaxe1
  • 전체
    오늘
    어제
    • 분류 전체보기 (148)
      • Backend (9)
        • Servlet (7)
        • Spring (2)
      • Frontend (1)
      • CS (0)
      • Book (33)
        • 자바 웹 프로그래밍 Next Step (30)
        • 테스트 주도 개발: 고품질 쾌속개발을 위한 TDD.. (1)
        • 성공과 실패를 결정하는 1%의 네트워크 원리 (2)
      • Engineering (0)
        • Testing (0)
      • Infra (6)
        • AWS (6)
      • Java (4)
      • Network (1)
      • 김영한 (28)
        • 자바 입문 (8)
        • 실전 자바 - 기본편 (6)
        • 실전 자바 - 중급편 (10)
        • 실전 자바 - 고급편 (4)
      • Web (39)
        • Web Basics (39)
      • Project (24)
        • NeoSquare (0)
        • Memo Evolution (24)
      • 정보처리기사 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    개발서적
    java
    aws
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
sqaxe1
맥에서 EC2 접속하기
상단으로

티스토리툴바