클라우드/AWS

[AWS] EC2 SSH 접속 에러 (permission denied public key) pem키 권한

KyuminKim 2024. 7. 30. 23:48

개발 환경

 


문제

AWS EC2 서버 생성 이후,

로컬 pc (노트북) 에서 ssh로 EC2로 접근하려 하니

 

아래와 같은 Permision Error가 발생했다.

 


원인

키의 권한 줄때,

chmod +x (pem키이름).pem

너무 많은 권한을 준 것이 문제였다.

 

 

이 원인을 어떻게 발견했는가?

ssh-keygen -f (pem키이름).pem -y

여기, pem키가 too open이라는 안내문구가 나온다 !!

 

서칭 중

https://repost.aws/ko/questions/QU5aYqBcIUT_iAepA0pvHK7A/%EC%A0%91%EC%86%8D%EC%9D%B4-%EC%9E%98%EB%90%98%EB%8D%98-ssh-%EA%B0%80-%EC%A0%91%EC%86%8D%EC%9D%B4-%EA%B0%91%EC%9E%90%EA%B8%B0-%EC%95%88%EB%90%A9%EB%8B%88%EB%8B%A4-permission-denied-publickey-gssapi-keyex-gssapi-with-mic

 

접속이 잘되던 ssh 가 접속이 갑자기 안됩니다. Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

Permission denied (publickey,gssapi-keyex,gssapi-with-mic). 란 메세지와 접속이 안되고 있습니다. 물론 pem 파일로 접속이 잘되었는데 오늘 갑자기 안됩니다. 외부에서 22,3306 모두 오픈해논상태입니다. 근데 330

repost.aws

 

나와 같은 에러를 발견했다.

 

c. EC2 인스턴스 내에 private key에 맞는 public key가 정확히 입력되어 있지 않은 문제

Seongju_L 님의 답변

 

 

이 방법에서 key 생성 방식을 소개한다.

ssh-keygen -f (pem키이름).pem -y

 

 

 

결론적으로는, 

pem키의 내용이 같았기에 해당 문제가 원인은 아니었다.

 

하지만 덕분에 pem키 자체의 권한에 문제가 있음 을 알게 되었다.

 


해결

pem키 권한을 적게 주자!

chmod 400 (pem키이름).pem

 

참고로,

 

[user] 100 = user에게 읽기권한만 있음 (2진수 100 = 10진수 4)

[group] 000 = 그룹에게 권한 없음

[other] 000 = 다른 사용자에게 권한 없음

 

즉,

파일 소유자만 읽기 권한을 갖는 것이다.

 


후기


pem키는 chmod 400으로 권한을 주자!!

 

귀찮아, chmod +x 해버리자~

라고 항상 써왔는데

 

여기, pem키가 too open이라는 안내문구가 나온다 !!

 

이 로그에서

chmod +x가 0755 권한을 갖고있는지 몰랐다

 

파일 소유자는 읽기 + 쓰기 + 실행 권한 을,

그룹/다른 사용자는 읽기 + 실행 권한 을 

갖고 있는 것이다.

 

그냥

chmod +x 하면 웬만한 권한 오류는 해결되니까

생각없이 가져다 썼었던걸 반성하게 되었다.

 

이번 기회로

올바른 권한을 한 번 더 생각하고, 올바를 권한을 주려고 노력해야겠다!