Pem 키 파일 권한 변경 해결하기

PEM 키 파일 사용 시 발생한 오류 메시지에 대한 해결 방법을 안내 드립니다.


오류: 보호되지 않는 프라이빗 키 파일

프라이빗 키 파일은 다른 사용자의 접근으로부터 반드시 보호해야 합니다. 만약 프라이빗 키가 본인 이외의 사용자가 읽거나 쓸 수 있는 경우, SSH는 해당 키를 무시하고 다음과 같은 경고 메시지를 표시합니다.

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0777 for '.ssh/my_private_key.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: .ssh/my_private_key.pem
Permission denied (publickey).

이와 같은 메시지가 표시되면, 오류 메시지의 첫 줄을 확인하여 인스턴스에 올바른 퍼블릭 키를 사용하고 있는지 점검해야 합니다.

위 예시에서 프라이빗 키 파일 .ssh/my_private_key.pem의 권한이 0777로 설정되어 있어, 모든 사용자가 이 파일에 접근할 수 있습니다. 이러한 권한은 전혀 보호되지 않는 상태이며, SSH에서는 이 키를 무시합니다.

사용자 OS에 따른 연결 방법을 아래에서 확인하세요.


[MacOS에서 Linux 인스턴스에 연결하기]

이 오류를 해결하려면, macOS 또는 Linux에서 다음 명령어를 실행하여 프라이빗 키 파일의 권한을 수정하세요

$ chmod 0400 [pem키 경로]

[Windows에서 Linux 인스턴스에 연결하기]

1. pem 파일 설정하기

  • .pem 파일이 저장된 위치로 이동합니다.

  • .pem 파일을 마우스 오른쪽 버튼으로 클릭하고 [속성(Properties)]을 선택합니다.

  • 보안 탭으로 이동합니다.

  • [고급(Advanced)]을 클릭합니다.

2. 파일 소유자 확인 및 변경하기

  • 파일의 소유자가 본인이 아닐 경우, 소유자를 사용자 이름으로 변경합니다.

  • [상속 비활성화(Disable inheritance)] [이 객체에서 상속된 모든 권한 제거(Remove all inherited permissions from this object)]를 선택합니다.

3.사용자 권한 추가하기

  • [추가(Add)]를 클릭한 후, [보안 주체 선택(Select a principal)]을 선택합니다.

  • 사용자 이름을 입력하고 [확인(OK)]을 클릭합니다.

  • [권한 항목(Permission Entry)] 창에서 [읽기(Read)] 권한을 부여하고 [확인(OK)]을 클릭합니다.

4.변경 사항 적용하기

  • [적용(Apply)]을 클릭하여 모든 설정을 저장합니다.

  • [확인(OK)]을 선택하여 [고급 보안 설정(Advanced Security Settings)] 창을 닫습니다.

  • [확인(OK)]을 선택하여 [속성(Properties)] 창을 닫습니다.

5.명령 프롬프트에서 SSH 연결 준비하기

  • Windows 명령 프롬프트를 열고, .pem 파일의 경로로 이동합니다.

  • 다음 명령어를 실행하여 명시적 사용 권한을 재설정합니다:

icacls.exe $path /reset

6.현재 사용자에게 읽기 권한 부여하기

  • 다음 명령어를 실행하여 현재 사용자에게 읽기 권한을 부여합니다:

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

7.상속 비활성화 및 상속된 권한 제거하기

  • 다음 명령어를 실행하여 상속을 비활성화하고 상속된 사용 권한을 제거합니다:

icacls.exe $path /inheritance:r

이 단계를 따르면 Windows에서 SSH를 통해 Linux 인스턴스에 안전하게 연결할 수 있습니다.

Last updated