본문으로 건너뛰기

[EC2] SSH 접속 가이드

Prerequisite

본 가이드를 따라 인스턴스를 관리하기 전, 아래의 준비 사항이 완료되었는지 확인하십시오.

  • 인증 키(Key Pair) 확보: 서버 접속을 위한 개인 키 파일을 로컬 PC에 다운로드합니다.
    • 파일명: key.pem (또는 .cer)

Process

AWS EC2(가상 컴퓨터) 퍼블릭 주소 확인법

  1. AWS Console 접속 후 오른 쪽 상단 리전을 확인해 주세요

  2. EC2 서비스로 이동합니다.

  3. 왼쪽 메뉴에서 인스턴스(Instances)를 클릭합니다.

  4. 리스트에서 해당 인스턴스를 선택합니다.

  5. 하단 상세 정보 탭에서 퍼블릭 IPv4 주소 또는 퍼블릭 IPv4 주소 항목의 값을 복사합니다.

MacOS Terminal SSH 접속 방법

  1. 터미널(Terminal) 실행합니다.

  2. 터미널 창에 .pem 파일을 드래그 앤 드롭하면 해당 파일의 전체 경로가 자동으로 입력됩니다. 보통 /Users/이름/Downloads/key.pem 형태입니다.

  3. 해당 키 위치를 복사합니다

    • 예시 : /Users/bradkim/Downloads/test-key.pem
  4. 키 파일(.pem) 권한 변경 (중요)

  • Mac(Linux/Unix) 환경에서는 키 파일의 권한이 너무 개방적일 경우 보안상의 이유로 접속을 거부합니다. 따라서 본인만 읽을 수 있도록 권한을 제한해야 합니다.
  • 터미널에 chmod 400 [/패스/경로/key.pem] 를 입력하세요.
  1. 아래 명령어를 입력합니다.
  • ssh -i [다운로드한 키 경로/내키이름.cer] ubuntu@서버아이피
  • 예시 : ssh -i /Users/bradkim/Downloads/test-brad-kim.pem [ubuntu@54.180.31.115](<mailto:ubuntu@54.180.31.115>)

💡 최초 접속 시 보안 확인 (Are you sure...?)

처음 접속하면 아래와 같은 메시지가 나타납니다:

The authenticity of host '3.36.128.96' can't be established...Are you sure you want to continue connecting (yes/no/[fingerprint])?

  • 이때 당황하지 마시고 _yes_를 입력한 후 엔터를 누릅니다.
  • 이는 해당 서버를 '신뢰할 수 있는 호스트' 목록(_known_hosts_)에 등록하는 과정입니다. 

Window Powershell SSH 접속 방법

  1. PowerShell을 킵니다.

  2. 다운로드 받은 키를 PowerShelldrag and drop하여 키 위치를 알아냅니다

  3. 해당 키 위치를 복사합니다

    • 예시 : C:\\Users\\su\\Downloads\\my-key.ceror C:\\Users\\su\\Downloads\\my-key.pem
  4. 아래 명령어를 입력합니다.

  • ssh -i "C:/다운로드한 키 경로/내키이름.cer" ubuntu@서버아이피
  • 예시 : ssh -i "C:\\Users\\su\\Downloads\\test-key.cer" [ubuntu@3.36.128.96](<mailto:ubuntu@3.36.128.96>)

4-1. 권한 에러 해결

명령어를 입력했는데 "Permission denied"나 "Permissions 0644 for ... are too open"이라는 메시지가 뜬다면, 윈도우가 이 키 파일을 "아무나 읽을 수 있는 파일"로 인식해서 보안상 거부하는 것입니다.

이 문제를 해결하려면 둘 중 하나를 선택하세요.

1번

  1. : PowerShell이나 CMD 창에 whoami라고 치면 나오는 이름(예: DESKTOP-XXXXX\\su)에서 뒷부분(su)이 윈도우 아이디를 복사합니다..

  2. 키 파일 우클릭: 사용 중인 .pem 또는 .cer 파일의 [속성] 클릭.

  3. 보안 탭 -> 고급: [보안] 탭으로 이동하여 하단의 [고급] 버튼 클릭.

  4. [상속 사용 안 함]을 클릭하고, 팝업창에서 "이 개체에서 상속된 권한을 모두 제거합니다" 선택 (기존 권한 모두 삭제됨).

  5. 사용자 추가: [추가] -> [보안 주체 선택] 클릭.

  6. '선택할 개체 이름을 입력하십시오' 칸에 본인의 윈도우 계정 아이디를 입력하고 [이름 확인] 후 [확인] 클릭.

  7. 다시 ssh -i "C:\Users\su\Downloads\test-key.cer" ubuntu@43.202.156.138 명령어로 시도 합니다.

2번

  • PowerShell을 실행한 후 아래 명령어를 그대로 복사해서 붙여넣으세요. 아래 코드에서 C:\\경로\\키이름.pem 부분만 본인의 실제 경로로 바꿔주세요.

# 1. 상속된 권한 제거 icacls.exe "C:\\Users\\su\\Downloads\\test-key.cer" /inheritance:r

2. 현재 로그인한 사용자에게만 '읽기' 권한 부여

$currentUser = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name icacls.exe "C:\\Users\\su\\Downloads\\test-key.cer" /grant:r "${currentUser}:R"


Window/Mac 공통-VSCode 원격 접속 가이드

  1. VS Code를 실행합니다.

  2. 왼쪽 사이드바의 확장(Extensions) 아이콘(사각형 모양)을 클릭합니다.

  3. Remote - SSH를 검색하여 설치(Install)합니다. (Microsoft에서 만든 공식 확장입니다.)

  4. 왼쪽 하단의 파란색 아이콘 >< (원격 창 열기)을 클릭 후 Connect to Host... 를 선택합니다


5. + Add New SSH Host… 를 클릭합니다.

6. 명령어 입력창에 아까 터미널에서 썼던 것과 비슷한 형식을 입력합니다

  • ssh -i "C:/Users/계정명/Downloads/new_key_pair.pem" [ubuntu@3.36.128.96](<mailto:ubuntu@3.36.128.96>)

7. 설정 파일을 저장할 경로를 물어보면 가장 위에 있는 C:/Users/사용자/.ssh/config를 선택합니다.

8. 다시 왼쪽 하단의 >< 아이콘을 누르고 Connect to Host...를 선택합니다.

9. 방금 추가한 3.xx.128.xx 항목이 목록에 뜹니다. 클릭하세요.

10. 서버 운영체제를 묻는다면 Linux를 선택합니다. 
간혹 'Continue'(지문 인식/보안 확인) 창이 먼저 뜨는 경우가 있습니다.
 

11. 왼쪽 하단에 SSH : xx.xx.x.x(IP)가 나온다면 접속 성공입니다!
 

💡접속이 안되나요? 확인해 보세요!

Config 파일 확인: F1 키를 누르고 Remote-SSH: Open SSH Configuration File...을 선택해 파일 내용이 아래와 같이 잘 들어갔는지 확인해 보세요.

Host x.xx.xxx.xx HostName x.xx.xxx.xx User ubuntu IdentityFile "C:\Users\계정명\Downloads\new_key_pair.pem"

또 다른 질문이 있으십니까? 문의 등록