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
에 옵션을 여러가지 더해주면 된다.
icacls 내 키페어 파일 경로 /reset
icacls 내 키페어 파일 경로 /grant:r %username%:(R)
icacls 내 키페어 파일 /inheritance:r
파일이나 폴더의 권한은 상위 디렉토리에서 하위 디렉토리 및 파일로 상속되거나 하는데,
icacls + inheritance:r
옵션을 지정하여
파일에 대한 상속된 권한을 제거할 수 있다.
.
권한 부여가 끝난 뒤 다시 icacls
명령어를 이용해 확인해보자.
무사히 user
에 대해서만 읽기 권한이 부여되었다!
.
ssh
로 접속이 잘 되는지도 확인해보자.
오! 잘된다.