[AWS] EC2 SSH 접속 에러: UNPROTECTED PRIVATE KEY FILE 에러 해결 방법 (ssh pem 키 권한 설정)

1. 에러 상황

AWS EC2 인스턴스에 SSH로 접속하려 할 때, 아래와 같은 경고 메시지와 함께 접속이 거부되는 경우가 있습니다.

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0755 for 'myKey.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "myKey.pem": bad permissions
ubuntu@{my-ip}: Permission denied (publickey).

핵심 문구를 잘 보면 "Permissions for 'myKey.pem' are too open"입니다. 즉, .pem 키 파일의 권한이 너무 많이 열려 있어 보안상 위험하다고 판단하고 시스템이 접속을 차단한 것입니다.

SSH 접속 시 발생하는 'UNPROTECTED PRIVATE KEY FILE' 경고 메시지 그림1. SSH 접속 시 발생하는 'UNPROTECTED PRIVATE KEY FILE' 경고 메시지

2. 발생 원인

리눅스(Linux)나 맥(macOS) 환경의 SSH 클라이언트는 보안을 위해 "소유자 외에는 누구도 읽을 수 없는 키"만 사용하도록 설계되어 있습니다.

  • 문제의 권한: 0755나 0644 같은 권한은 나뿐만 아니라 다른 유저(그룹, 기타 사용자)도 이 키를 읽을 수 있다는 뜻입니다.
  • 보안 규칙: 개인 키(Private Key)가 남들에게 노출될 가능성이 있다면, SSH는 해당 키를 신뢰하지 않고 접속을 거부합니다.

3. 해결 방법: chmod 400

터미널에서 키 파일(.pem)이 저장된 디렉토리로 이동한 후, 권한을 소유자 전용 읽기 권한(400)으로 변경해 주면 즉시 해결됩니다.

# pem 키 파일의 권한을 400으로 변경
chmod 400 myKey.pem

참고: 만약 400으로도 안 된다면 600을 시도해 볼 수 있지만, AWS 가이드에서는 보통 400을 권장합니다.

💡 리눅스 파일 권한 400의 의미

권한 대상 숫자 상세 의미
소유자 (Owner) 4 읽기(Read) 가능 (수정/실행 불가)
그룹 (Group) 0 모든 권한 없음
기타 (Others) 0 모든 권한 없음

4. 결과 확인

권한 변경 후 다시 접속을 시도해 보시면 됩니다.

ssh -i "myKey.pem" ubuntu@<Your-EC2-IP>

이제 경고창 없이 정상적으로 인스턴스에 접속되는 것을 확인할 수 있습니다.


📦 블로그 이전 글입니다. 원본: taehyuklee.tistory.com/31

이 글 공유𝕏f

댓글