작고 귀여운 AWS .pem 권한 에러 : WARNING: UNPROTECTED PRIVATE KEY FILE!

solee·2022년 3월 20일
1

TIL

목록 보기
8/20
post-thumbnail
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0555 for '{pem_key_name}.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 "{pem_key_name}.pem": bad permissions
ubuntu@{public IPv4}: Permission denied (publickey).

암호화 라인에 대한 안 좋은 추억이 있다.
예를 들면 git. git SSH를 사용하고 싶어서 2시간 정도 애쓴 적이 있는데, 이유를 알 수 없는 문제로 연결이 되지 않아 결국 포기하고 지금도 깃 토큰을 발급받아 매번 push를 올릴 때마다 붙여넣기를 해 가며 사용하고 있다.

아니나다를까, AWS에서 또 말썽이다.

아아! 이놈아!

어떻게 하는지 영상을 보면서 따라한 거다. 순서대로 얌전히 따라했으니 chmod 400도 잘 해 주었는데 이런다.
해결을 시도해 보자.


첫 번째 해결책

이 에러를 검색하면 가장 먼저 나오는 해결책이 그거다. chmod.
pem 키의 권한이 너무 많으니 사용할 수 없다는 거지. 그리고 프라이빗 키 파일이 아무나 들어올 수 있는 곳에 있다는 거지.

chmod를 500으로도 해 보고 600으로도 해 봤지만 이 야속한 WARNING만 몇 번이나 봤다. 이걸로 해결된 사람들이 부러워서 눈물이 날 것 같았다.




두 번째 해결책

다음으로 찾은 것은 윈도우 속성에서 pem키의 속성을 직접적으로 바꿔 주는 거다.

우클릭 - 속성 - 보안 - 고급 - 상속 미사용 및 제거 - 보안주체를 컴퓨터 사용자로 설정 - 기본권한은 읽기 및 실행

빼먹은 부분이 있을 수도 있지만, 다 따라 하고 나면 이렇다:

그리고?
당연히 안 됐다. 그러니까 블로깅을 하고 있지.



이해가 안 된다. 내 키가 뭐가 어때서 보호가 안 됐다고 말하는 거야 너 심즈 복지국이야?
ㅠㅠ

슬픈 상태로 계속 찾아도 비슷한 해결책뿐인 가운데, 생각지도 못했던 aws docs가 나에게 왔다.



AWS docs가 다시 나에게

내가 처음에 봤던 건 다른 오류에 관한 문서였어서, 살펴보니 아까 한 것과 다르지 않았다.

https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/TroubleshootingInstancesConnecting.html#troubleshoot-unprotected-key

응 체인지모드 사백
이건 안 되더라


응 속성 권한 주는 거
이거 보고 아까 한 거에서 읽기랑 실행에서 읽기만으로 수정했는데
안 되더라


여기서 또 희망을 가지고야 마는 게 사람인 것이다




세 번째 해결책 시도

문제가 있다면, 이 명령어들에 대해 아는 바가 없다는 거다.

일단 첫 번째.

icacls.exe $path /reset

$path에 말 그대로 경로를 그대로 붙여 넣었더니 해결되었다.


두 번째.

icacls.exe $path /GRANT:R "$($env:USERNAME):(R)"

(env:USERNAME)이라는 걸 얼마나 살려야 하고 얼마나 죽여야 하는지 모르겠어서 이놈의 환경변수 쨍쨍대면서 치다 보니 먹혔다. 처리된 거겠지!


세 번째.

icacls.exe $path /inheritance:r




(숨이 멎는 소리)

이 이제 시도해 보면 되겠지?
허억

헉.....
....................
.................................


그럼 이제... 필살 오의
재부팅.

도 안 됐다.




해결

그리고 의미없이 해결됐다.
옆자리 윈도우 유저님께 여쭤본 결과, 내 우분투가 문제였다.
우분투를 열면 Administrator, 즉 내 pc로 접속되어 거기서 모든 작업을 진행했다. 즉, 윈도우 환경에서는 리눅스 명령어인 chmod가 먹히지 않는 게 문제다.
그러면 윈도우 기반으로 권한을 수정해 준 것들이 왜 안 먹혔을까? 아마 실행은 우분투, 즉 리눅스로 실행하기 때문인 것 같다.

pem키를 우분투 내부의 폴더(리눅스 환경)로 옮긴 후 거기서 chmod 400을 하니 잘만 먹혔다!

허망하기도 하지만, 잘 돼서 너무 다행이다. AWS에 배포하고 싶었는데 못 했던 가장 큰 원인이기도 하니까... 다음 프로젝트는 직접 배포도 해 봐야지.

profile
DA DA DA

2개의 댓글

comment-user-thumbnail
2024년 2월 20일

우분투 내부의 폴더는 어디인가요?

1개의 답글