지난 포스팅에서는 테스트를 위해 AWS 인스턴스를 생성했다. 생성했으면 접속해서 사용해야 하는데 처음에는 인스턴스에 접속하는 것부터 어렵다. 그래서 이번 포스팅에서는 지난번에 생성했던 인스턴스에 쉘로 접속하는 내용을 다룬다. 참고로 Windows 운영체제라면 Putty나 Xshell 또는 Mbaxterm을 사용하여 인스턴스에 접속하면 되지만 개인적으로 Mac을 사용하므로 Mac에서 SSH
명령어를 이용해 터미널로 접속하는 방법을 다루겠다.
터미널을 이용하여 지난 포스팅에서 다운받은 키 페어가 있는 디렉토리로 이동한다. test-server
로 키 이름을 지정했으므로 다운받은 키는 test-server.pem
또는 test-server.cer
로 다운받아졌을 것이다. 나는 cer 확장자로 다운받아졌으므로 cer 기준으로 설명하겠다.
먼저 다운받은 키로 인스턴스 접속을 시도하면 아래와 같이 나오며 접속이 되지 않는다.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/Users/kyeongmin/Documents/aws/test-server/test-server.cer' 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/kyeongmin/Documents/aws/test-server/test-server.cer": bad permissions
rocky@xxx.xxx.xxx.xxx: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
이유는 Warnning 메세지에 나와있듯이 key 파일의 권한 문제이다. 위에서도 보이듯이 처음 파일을 다운로드 받으면 644형태로 파일의 권한이 설정되어 있다. 파일 형태에 대해 자세히 살펴보면 아래와 같다.
$ ls -al
-rw-r--r--@ 1 user staff 1700 4 9 12:06 test-server.cer
따라서 사용자만 프라이빗 키 파일을 읽을 수 있도록 다음과 같이 파일의 권한을 수정해줘야 한다.
$ chmod 400 test-server.cer
$ ls -al
-r--------@ 1 user staff 1700 4 9 12:06 test-server.cer
먼저 인스턴스에 접속하려면 생성한 인스턴스의 Public IP
를 확인해야 한다. 확인하는 방법은 EC2 메뉴에서 인스턴스를 클릭해서 확인할 수 있다.
Public IP를 확인했으면 이제 SSH
명령어로 접속을 시도해본다. 접속하는 방법은 아래와 같다. 참고로 AWS에서 username은 기본적으로 OS명이다. 지난 포스팅에서는 rocky linux를 설치했으므로 username은 rocky
이다.
# 명령어 구조
$ ssh -i "key 파일" {{username}}@{{public_ip}}
# 명령어
$ ssh -i ./test-server.cer rocky@xxx.xxx.xxx.xxx
위 명령어가 이상 없이 실행되었다면 아래와 같이 잘 접속이 된것을 볼 수 있다.
[AWS] PuTTY로 EC2 터미널 접속 (0) | 2022.05.15 |
---|---|
[AWS] 테스트 서버 생성 (rocky linux) (0) | 2022.04.10 |
댓글 영역