EC2, SSH로 연결이 안될 때? "Permission denied" 해결 방법

나상현·2023년 2월 21일
1
post-thumbnail

AWS를 활용해 EC2로 서비스를 열었다면, 이제 자신만의 서버를 활용할 수 있게 된 것이다.

하지만 서버를 만들어서 기쁜 것도 잠시, 접속을 할 방법을 모르겠다면?

흔히 Headless 서버를 제어할 때 SSH 연결을 통해 원격으로 이용하곤 한다.

이 시리즈에서는 SSH 연결을 할 때 흔히 발생하는 오류를 짚고 넘어가려고 한다.

이 글 시리즈의 내용은 공식 트러블슈팅 문서를 참고해서 작성되었음.
자세한 내용을 확인하려면 위 문서를 확인하세요!

.pem 파일 permission

ec2-user@XXX.XXX.XXX.XXX: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

가장 많이 발생하는 오류 중 하나이다.

pem 파일이 PC 내 다른 사용자들도 사용할 수 있도록 공개되어 있을 경우 발생하는 문제이다.

이를 해결하기 위해서는 해당 파일의 권한을 수정해주어야 한다.
(pem 파일의 디렉토리는 C:\dev\privatekey.pem 이라고 가정함)

리눅스 & 맥:

매우 간단하다. 권한을 재설정해주면 된다.

chmod 0400 C:\dev\privatekey.pem

윈도우:

살짝 귀찮다.
icacl.exe 를 사용하는 방법과 윈도우에서 직접 권한을 수정하는 방법이 있다.
본문에서는 편의상 후자의 방법을 이용하지만 내용은 본질적으로 같다.

먼저 pem 파일을 우클릭하여 속성을 확인한다.

보안 탭에 들어가서 고급을 선택한다.

상속 사용 안 함 클릭.

"이 개체에서 상속된 사용 권한을 모두 제거합니다."

사용권한 항목에서 모든 사용자가 삭제된 것을 확인했다면, 소유자 탭의 변경을 클릭.

변경내용 저장 -> 예

이 창까지 들어왔다면, 커서 위치에 본인 컴퓨터의 계정 이름을 입력한다.
계정 이름은 윈도우 키를 눌러 뜬 팝업에서 확인할 수 있다.

내 경우 "user1" 이므로 "user1"이라 입력 후 이름 확인 클릭.

제대로 입력했다면 위와 같이 "{장치이름} \ {유저이름}" 으로 바뀌었을 것이다.
확인을 눌러 종료한다.

소유자를 확실히 지정해주었으니 이번에는 소유자에게 권한을 부여해야한다.
아래 창에서 추가를 선택한다.

보안주체 선택

전과 동일하게 소유자명을 입력해준다

권한은 다음과 같이 "읽기 및 실행", "읽기" 이렇게 두 가지를 부여한다.

확인 -> 확인을 눌러 종료한다.

이제 다시 ssh 연결을 시도하면 된다!

ssh -i D:\dev\privatekey.pem ec2-user@XXX.XXX.XXX.XXX

접속이 가능하다.

profile
wannabe dev

0개의 댓글