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

***

## 오류: 보호되지 않는 프라이빗 키 파일 <a href="#troubleshoot-unprotected-key" id="troubleshoot-unprotected-key"></a>

프라이빗 키 파일은 다른 사용자의 접근으로부터 반드시 보호해야 합니다. 만약 프라이빗 키가 본인 이외의 사용자가 읽거나 쓸 수 있는 경우, 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).
```

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

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

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

***

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

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

```
$ chmod 0400 [pem키 경로]
```

***

### \[Windows에서 Linux 인스턴스에 연결하기 - UI]

### 1. pem 파일 설정하기

* .pem 파일이 저장된 위치로 이동합니다.
* .pem 파일을 마우스 오른쪽 버튼으로 클릭하고 **\[속성(Properties)]**&#xC744; 선택합니다.
* **보안 탭**으로 이동합니다.
* **\[고급(Advanced)]**&#xC744; 클릭합니다.

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

* 파일의 소유자가 본인이 아닐 경우, 소유자를 사용자 이름으로 변경합니다.
* **\[상속 비활성화(Disable inheritance)]** 및 **\[이 객체에서 상속된 모든 권한 제거(Remove all inherited permissions from this object)]**&#xB97C; 선택합니다.

### 3.사용자 권한 추가하기

* **\[추가(Add)]**&#xB97C; 클릭한 후, **\[보안 주체 선택(Select a principal)]**&#xC744; 선택합니다.
* 사용자 이름을 입력하고 **\[확인(OK)]**&#xC744; 클릭합니다.
* **\[권한 항목(Permission Entry)]** 창에서 **\[읽기(Read)]** 권한을 부여하고 **\[확인(OK)]**&#xC744; 클릭합니다.

### 4.변경 사항 적용하기

* **\[적용(Apply)]**&#xC744; 클릭하여 모든 설정을 저장합니다.
* **\[확인(OK)]**&#xC744; 선택하여 **\[고급 보안 설정(Advanced Security Settings)]** 창을 닫습니다.
* **\[확인(OK)]**&#xC744; 선택하여 **\[속성(Properties)]** 창을 닫습니다.

***

### \[Windows에서 Linux 인스턴스에 연결하기 - 명령 프롬프트]

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

* Windows 명령 프롬프트를 열고, .pem 파일의 경로로 이동합니다.
* 다음 명령어를 실행하여 명시적 사용 권한을 재설정합니다:

```
icacls.exe [pem키 경로] /reset
```

### **2.현재 사용자에게 읽기 권한 부여하기**

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

```
icacls.exe [pem키 경로] /GRANT:R "$($env:USERNAME):(R)"
```

### **3.상속 비활성화 및 상속된 권한 제거하기**

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

```
icacls.exe [pem키 경로] /inheritance:r
```

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