윈도우 ssh 접속 시 UNPROTECTED PRIVATE KEY FILE 경고 해결 방법

2022. 10. 23. 21:57 / 서기랑

 윈도우에서 ssh 키를 생성하고 이를 이용하여 서버에 접속을 하려고 하면 아래와 같은 경고가 발생하면서 접속이 되지 않는 경우가 있다.

WARNING: UNPROTECTED PRIVATE KEY FILE!
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions for '키 파일' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.

 해당 경고는 내용 그대로 키 파일의 권한이 아무나 접근 가능하도록 되어 있어 발생하는 것으로 이를 해결하고자 한다면  파일의 권한을 소유자만 읽기 가능하도록 변경해주면 된다.

 

윈도우 ssh 접속 UNPROTECTED PRIVATE KEY FILE 해결 하기

1. cmd 실행.

 cmd를 관리자 권한으로 실행하자.

시작에서 cmd 실행

2. 파일 권한 변경.

 cmd 창이 나타나면 아래의 명령어 확인하고 사용자의 상황에 맞게 수정한 뒤 실행하자.

- 기본 명령어
icacls 경로/키파일 /reset
 : 파일 권한을 기본 값으로 초기화.

icacls 경로/키파일 /grant:r 계정명:(R)
 : 특정 계정에 읽기 권한만 부여.
   현재 로그인 중인 사용자 계정명을 넣으면 된다.

icacls 경로/키파일 /inheritance:r
 : 상속된 계정은 모두 삭제.
   읽기 권한을 부여한 계정 외에 나머지 계정은 모두 모두 삭제된다고 보면 된다.

- 사용 예
icacls d:\blog\test\sshkey /reset
icacls d:\blog\test\sshkey /grant:r administrators:(R)
icacls d:\blog\test\sshkey /inheritance:r

cmd 명령어 실행 화면

3. 파일 권한 확인.

 위 명령어를 실행한 뒤 키 파일 속성의 보안 탭을 확인해보면 지정한 계정에 읽기 권한이 부여되고 나머지 계정은 모두 삭제된 것을 확인할 수 있다.

키 파일 속성 확인

 

그 외 내용

- icacls 명령어를 이용하여 권한을 변경하는 것이 간단하지만 명령어를 사용하는데 거부감이 있다면 파일 속성의 보안 탭에서 변경해도 된다.

 사용하기 편한 방법을 이용하자.

 

- 리눅스 환경에서는 [sudo chmod 400]만 입력하면 간단하게 권한 변경이 가능하다.

 

- 윈도우에서 파일이나 폴더를 생성하게 되면 최상위 디렉토리(c:\ 등)에서 권한을 상속받게 된다.

 때문에 icacls 명령어에서 intheritance:r를 사용하면 보통은 모든 계정이 삭제된다고 보면 되며 /grant:r을 사용하게 되면 상속이 아닌 직접 권한을 부여하기 때문에 삭제되지 않는 것이라고 보면 된다.