2019. 3. 15. 16:48ㆍAWS
1. AWS EC2에 접속할 때 보안을 위해 .pem 파일을 사용해서 접속을 할 때가 있습니다.
그럴 때 자주 겪는 경고가 있지요.
$ ssh -i ~/key/test.pem ubuntu@ec2-xx-xx-xx-xx.ap-northeast-2.compute.amazonaws.com
The authenticity of host 'ec2-xx-xx-xx-xx.ap-northeast-2.compute.amazonaws.com (xx.xx.xx.xx)' can't be established.
ECDSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'ec2-xx-xx-xx-xx.ap-northeast-2.compute.amazonaws.com,xx.xx.xx.xx' (ECDSA) to the list of known hosts.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/Users/jieunyi/project/key/test.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/Users/jieunyi/project/key/test.pem": bad permissions
Permission denied (publickey).
2. .pem 파일의 권한 문제입니다.
이럴 땐 "chmod 400 [파일 경로]" 또는 "chmod 600 [파일 경로]" 이 두 가지 명령어로 권한을 설정하고 다시 접속하면 해결 됩니다.
"chmod 400 [파일 경로]" 명령어는 파일에 읽기, 쓰기 권한을 모두 줄 때 사용하고,
"chmod 600 [파일 경로]" 명령어는 파일에 읽기 권한만 주고 싶을 때 사용합니다.
.pem 파일은 수정할 일도 없고 굳이 쓰기 권한을 줄 필요가 없으므로 저는 "chmod 600 [파일 경로]" 명령어를 사용했습니다.
$ chmod 600 ~/key/test.pem
※ 어째서 400은 읽기/쓰기고 600은 읽기냐!! 숫자의 의미가 무엇이냐!! 라고 물으신다면 대답해 드리는게 인지상정입니다.
직접 적기는 글이 길어질 것 같으니 아래 링크를 참고하세요. ㅎㅎ
https://ss64.com/bash/chmod.html
영어로 되어있다는건 함정.
링크로 가시면 아래처럼 권한에 관한 숫자를 내맘대로 만들수도 있습니다.
예를 들면 600은 2진수로 표현하자면 0110 0000 0000이라고 하면 힌트가 되려나요.
3. 끝.