안녕하세요.
오늘은 AWS 의 UNPROTECTED PRIVATE KEY FILE! 에러를 해결하는 방법에 대해 알아보겠습니다.
실제로 이 에러의 정확한 명칭은 다음과 같습니다.
bad permission ec2-user@Public IPv4 Key: Permission denied (publickey, gssapi-keyex, gssapi-with-mic) 가 에러의 총 명칭을 나타냅니다.
발생이유 및 해결 방법
이 에러는 내용 그대로 Key File 의 권한이 아무나 접근 가능하도록 되어 있어 발생합니다.
또한 Windows 의 최상위 Directory (C:\) 에서 권한을 상속받고 있습니다.
그렇다면 이 에러는 어떻게 해결해야 하나요?
최상위 Directory 로 File 옮기기
첫 번째 방법은 File 을 최상위 Directory (C:\) 로 옮기는 방법입니다.
어차피 최상위 Directory 는 모든 Directory 에게 상속을 해주고 있으므로, 상속을 해주고 있는 최상위 Directory 인 C:\ 에서 실행하면 됩니다.
ssh -i .\<pem 이름> ec2-user@Public IPv4 Address
상단의 이미지와 같이 C:\ 밑에서 실행하면 정상적으로 Amazon EC2 Instance 가 CLI 상에서 실행되시는 것을 보실 수 있습니다.
상속된 사용자 모두 제거 후, 자신의 계정만 추가하기
두 번째 방법은 바로 최상위 Directory 에서 권한을 상속받은 것을 지우고, 현재 사용 중인 계정만 추가하는 방법입니다.
우선 PowerShell 을 실행하도록 하겠습니다.
PowerShell 을 실행 후, 저는 최상위 Directory 가 아닌 Custom Partition (E:\) 으로 이동하여 작업하였습니다.
그 다음, .pem 파일이 있는 Directory 를 파일 탐색기를 통해 확인합니다.
.pem 파일을 찾았다면 마우스 오른쪽 버튼을 클릭하여 속성 버튼을 누른 후, 보안 탭으로 진입합니다.
그 다음, 고급 버튼을 누릅니다.
그런 다음, 고급 보안 설정 팝업에 들어가 상속 사용 안함 버튼을 클릭합니다.
최상위 Directory 안에 들어가 있는 File 이 아니더라도 다른 Directory 안에서 상속받지 않고 자유롭게 권한을 추가하여 사용하기 위해 이 개체에서 상속된 사용 권한을 모두 제거합니다. 버튼을 클릭합니다.
정상적으로 모든 권한들이 제거되었다면 추가 버튼을 눌러 새로운 권한을 추가합니다.
추가 탭을 누르면 권한 항목 팝업이 나오는데, 여기서 보안 주체 선택을 클릭합니다.
그 다음, 사용자 또는 그룹 선택 팝업 창으로 들어와 선택할 개체 이름을 입력하십시오(예제)(E) 에서 현재 Computer 에서 사용 중인 계정 이름을 입력한 후, 이름 확인 버튼을 누릅니다.
만약 본인이 사용하고 있는 계정의 이름이 기억 안난다면 CMD 창을 열어 whoami 를 입력하시면 본인이 사용하고 있는 계정 이름이 나오니, 참고하시면 될 것 같습니다.
이름 확인 버튼을 눌렀다면 하단의 Image 와 같이 계정 이름과 찾을 위치를 선택하십시오(F). 형태가 함께 결합된 개체 이름이 나옵니다.
예) User\userName
그 다음, 개체 이름을 확인 후, 확인 버튼을 클릭합니다.
다시 권한 항목 팝업으로 돌아와 기본 권한이 읽기 및 실행, 그리고 읽기 체크박스가 표시가 되어있는지 확인 후, 확인 버튼을 클릭합니다.
다시 고급 보안 설정 팝업으로 돌아와 확인 버튼을 누릅니다.
다시 속성 팝업으로 돌아와 확인 버튼을 클릭합니다.
이제 다시 PowerShell 을 다시 열어 Test 를 해보도록 합시다.
.pem 파일이 있는 File Directory 로 이동 후, 다음 명령어를 복사합니다.
ssh -i .\<pem 이름> ec2-user@Public IPv4 Address
상단의 명령어를 입력하면 하단의 결과처럼 잘 나오는 것을 볼 수 있습니다.
지금까지 끝까지 잘 따라와주셔서 감사합니다!!!
참고 블로그
https://antennagom.com/14107