맥북에서 aws SSH 연결은 터미널로 간단하게 할 수 있다. 그런데 자꾸 이런 에러가 뜨면서 연결이 거부된다 ㅠㅠ
해결책은 아래 블로그를 보면서 해결했다 : )
1. 맥북 터미널로 AWS의 SSH 연결하기
맥북에서는 터미널 > 셸 > 새로운 원격 연결 경로를 통해 위 UI를 통해 쉽게 연결할 수 있다. 하지만 나의 경우는 자꾸 Permission denied가 떠서 여러 방법을 알아봤다. 그리하여 cmd 방식으로 연결하는 것을 알게되었다.
1) cmd로 aws ssh 연결
ssh -i ~/<Directory path>/<private_key_name>.pem id@<퍼블릭 DNS>
위 명령어를 cmd에 입력해주면 된다.
Directory path : AWS에서 컴퓨터 1대 만들었을 때 설정했던 키페어 즉 pem키 경로이다. 나는 맥북의 Downloads 경로에 했다.
id : 나는 처음에 내가 인스턴스에 설정한 Name인 줄 알고 test1을 썼었다. 근데 우분투 인스턴스를 만들었다면 ubuntu라고 한다ㅋㅋ
2) private key 접근 모드 변경
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions 0770 for '/Users/nyol/Downloads/docker_practice.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/nyol/Downloads/docker_practice.pem": bad permissions ubuntu@ec2-52-78-220-223.ap-northeast-2.compute.amazonaws.com: Permission denied (publickey).
private key가 노출이 되기 때문에 이런 문구가 뜬다. 이럴 경우 chmod 를 통해 mode를 접근 모드를 전환시켜주어야 한다.
chmod 400 <private_key_name>.pem
접근 모드 변경 후 다시 1번 코드를 실행해주면 된다.
2. chmod란?
chmod(change mod)는 파일의 접근 권한을 변경하는 명령어이다.
chmod [레퍼런스] [연산자] [변경할 접근권한] [파일]
- 레퍼런스 : 변경할 대상인 소유자(user), 그룹(group), 다른 모든 사용자(others)를 의미하며, 각각 u, g, o로 표기. a(all)는 소유자, 그룹, 다른 모든 사용자 전체를 의미
- 연산자 : +는 권한을 부여, -는 권한을 해제
- 변경할 접근권한 : 읽기(read), 쓰기(write), 실행(excute)를 의미하는 문자로 각가 r, w, x로 표기
위에서 썼던 chmod 400 <private_key_name>.pem의 경우 8진수 방식으로 chmod를 이용한 것이다.
8진수 권한
400 | 파일 소유자의 읽기 권한 |
200 | 파일 소유자의 쓰기 권한 |
100 | 파일 소유자의 실행 권한 |
40 | 그룹 사용자의 읽기 권한 |
20 | 그룹 사용자의 쓰기 권한 |
10 | 그룹 사용자의 실행 권한 |
4 | 다른 모든 사용자의 읽기 권한 |
2 | 다른 모든 사용자의 쓰기 권한 |
1 | 다른 모든 사용자의 실행 권한 |
즉, 읽기 권한만 준 것이다.