2023-06-02 TIL

0v0baek·2023년 6월 2일
0

TIL

목록 보기
66/92

[Windows] ssh 키 연결 시 bad permission

ssh -i < 키파일> <OS>@<서버 IP 주소>

명령 프롬포트에서 이렇게 입력하고 키페어를 연결해 서버로 들어가려고 할 때, 아래와 같은 오류가 뜰 때가 있다.

🚫 문제 발생

Warning: Permanently added '서버 ip 주소' (ECDSA) to the list of known hosts.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         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.
Load key "내 키페어": bad permissions
OS@내 ip 주소: Permission denied (publickey).

겁먹지말고 위에서부터 차근차근 읽어보자.

우선 골뱅이 안을 보면 보호되지 않은 개인 키 파일이라고 한다.
그리고 내 키 페어 파일의 권한이 너무 오픈되어 있어서, 다른 사람이 이 키 페어 파일에 엑세스 할 수 없게 만들어달라고 한다.

bad permission이 핵심.

✅ 해결 방법

참고 블로그

내 키페어의 권한 조정을 해주면 된다.

파일 권한은 위와 같이 세 단계로 이루어지는데,

읽기 : 4
쓰기 : 2
실행 : 1

이라고 생각하면 된다.

만약 내 파일 권한이 400 이라면,
파일 소유자에 대해서만 읽기를 허용하는 것이다.

.

❗ 지금부터 입력할 모든 명령어는 cmd에서 입력해줘야 한다. ❗

💡 파일 권한 확인

우선 내 키페어 파일의 권한을 한번 확인해보자.
cmd 에서 파일의 권한을 확인할 수 있는 명령어는 아래와 같다.

icacls <파일 >

위의 권한 표시 숫자로 생각해보면
현재 권한 상태는 777이라고 표현할 수 있겠다.
이러면 보안상으로 좋지 않다.

파일 소유자인 나만 읽을 수 있게 변경해주자.

💡 파일 권한 변경

참고 블로그

리눅스에서는 chmod 라는 명령어를 통해서 권한을 변경할 수 있다.

그러나 윈도우에서는 chmod 라는 명령어가 기본적으로 먹히지가 않는다.
윈도우는 리눅스 기반이 아니니 당연하다.

위에서 봤던 icacls에 옵션을 여러가지 더해주면 된다.

[1] 먼저 키페어 파일의 권한을 초기화 시킨다.

icacls 내 키페어 파일 경로 /reset

[2] 그리고 사용자에 대해 R(ead) 권한을 부여한다.

icacls 내 키페어 파일 경로 /grant:r %username%:(R)

[3] 상속 권한을 제거하고 옵션을 지정해준다.

icacls 내 키페어 파일 /inheritance:r

파일이나 폴더의 권한은 상위 디렉토리에서 하위 디렉토리 및 파일로 상속되거나 하는데,

icacls + inheritance:r 옵션을 지정하여
파일에 대한 상속된 권한을 제거할 수 있다.

.

권한 부여가 끝난 뒤 다시 icacls 명령어를 이용해 확인해보자.

무사히 user에 대해서만 읽기 권한이 부여되었다!

.

ssh 로 접속이 잘 되는지도 확인해보자.

오! 잘된다.

profile
개발 공부 하는 비전공자 새내기. 꾸준히 합시다!

0개의 댓글