[AWS] EC2 SSH 접속 에러 — UNPROTECTED PRIVATE KEY FILE 해결 (.pem 권한 chmod 400)
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 키 파일의 권한이 너무 많이 열려 있어 보안상 위험하다고 판단해 시스템이 접속을 차단한 것이다.
그림 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>
이제 경고 없이 정상적으로 인스턴스에 접속되는 것을 확인할 수 있다.
📦 이 글은 제가 운영하던 티스토리 블로그에서 옮겨온(migration) 글입니다. 원문: taehyuklee.tistory.com/31
댓글