[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 키 파일의 권한이 너무 많이 열려 있어 보안상 위험하다고 판단하고 시스템이 접속을 차단한 것입니다.
그림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
댓글