AWS EC2 인스턴스에 Putty, SecureCRT 로 SSH 접속하기
0. SSH 접속을 위한 Public/Private Key Pair 생성.
AWS EC2 인스턴스에는 SSH 를 이용하여 Remote 접속이 가능하다. AWS 메뉴얼에는 Putty 를 권장하지만, SecureCRT와 같이 보다 다양한 기능을 제공하는 SSH 클라이언트로 접속이 가능하다.
EC2 인스턴스에 접속 시 가장 중요한 것은 EC2 인스턴스 생성 시 만들어진 Public/Private Key pair 를 로컬 컴퓨터에 잘 저장한 뒤 이를 SSH Client에서 import하여 사용하는 것이다.
Key Pair 는 EC2 인스턴스 생성시에 Key Pair 생성시에 만들어진다.
만드는 과정은 아래와 같이 크게 7단계이며, 6단계인 Configure Security Group에 SSH 22번 포트가 모든 ip에 Default로 Open 되어 있다. ( 만일 이 설정을 없애면 SSH로 접속할 수 없으므로 유의 할것. )
7. Review
아래 그림은 Security Group을 설정하는 화면임. Security Group은 EC2 인스턴스의 방화벽이라고 생각하면 이해하기 쉬움. type 필드에 SSH 를 확인하고 source 에 anywhere를 선택하면 어떤 클라이언트 ip에서도 ssh 접속 가능함.
7단계에 Review 화면에서 Instance 생성에 대한 모든 속성을 확인 후에 화면 하단의 맨 오른쪽에 있는 Launch 버튼을 누르면 "Select an Existing Key Pair or Creating New Key Pair" 화면이 Pop up 된다. 해당 화면이 바로 SSH Client 접속을 위한 Private/Public Key Pair를 생성하는 것이다. 기존에 만들어 놓은 Key Pair로 여러개의 EC2 Instance들을 접속하려면 Existing Key를 선택하고 그렇지 않고 새로운 Key pair를 이용하려면 Create a new key pair를 선택하고 Key Pair Name을 설정한다. 아래 그림은 Key pair name을 AWS_TEST01_KP 를 설정하였다. Download Key Pair 버튼을 누르면 방금 지정한 Key pair를 로컬 컴퓨터에 Download 할 수 있다.
Download Key Pair를 선택하면 로컬 컴퓨터의 특정 디렉토리에 key pair 를 .pem 확장자로 저장할 수 있다. 이때 다운로드된 key pair 파일의 디렉토리 및 파일 내용을 잘 기억하고 있어야 한다. 후에 SSH 클라이언트 (Putty , SecureCRT)에서 이를 활용할 것이기 때문이며, 만일 분실 시에는 여러분이 애써서 만들어 놓은 EC2 인스턴스에 접속하지 못하기 때문이다. 저의 경우 C:\Dev\aws\AWS_TEST01_KP.pem 로 파일을 저장하겠습니다.
파일을 저장하였으면 최종적으로 Launch Instance를 클릭하여 EC2 Instance를 생성함.
인스턴스가 생성되기까지 10~ 20분 사이가 소모되므로 완전히 인스턴스가 생성되면 SSH 클라이언트로 접속해보자.
1. Putty로 접속하기.
Putty는 AWS에서 내려받은 pem 형식의 Key pair 파일을 putty 전용의 key generator를 통해서 ppk 형식으로 변경하여 인증키에 사용 가능하다.
puTTygen 을 이용하여 putty 전용 인증키 생성이 가능하다 ( putty와 puTTygen은 모두 http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html 에서 Download 가능하다. )
puttygen을 실행한다. Load an existing private key의 Load 버튼을 클릭하여 AWS에서 Download 받은 pem 파일을 선택한다. 이때 SSH-2 RSA가 선택되어 있어야 한다.
Default로 putty의 ppk 파일확장자만을 가지는 셋팅으로 되어 있으므로 우리가 EC2에서 Download 받은 pem 파일이 보이지 않을수 있다. 화면 하단 오른쪽의 확장자 선택 option을 All Files(*.*) 으로 변경하면 DownLoad 받은 파일이 보일 것이다. Download 된. C:\Dev\aws\AWS_TEST01_KP.pem를 선택한다.
Key가 Successfully import 되었고 save private key 버튼을 클릭하라는 메시지 pop up 창이 나온다. "확인" 버튼을 누르면 popup 창이 사라지고 이후 save private key 버튼을 클릭하여 putty의 ppk 파일확장자로 저장을 시도한다.
Save Private key 를 클릭하면 "해당 key를 password없이 저장할 것인지" 를 묻는 popup 창이 나오며, 그냥 예(Y)를 클릭한다.
AWS_TEST01_KP.ppk 라는 이름으로 private key 를 저장한다.
이제 putty가 이용할 수 있는 private key 가 만들어 졌으므로 puttygen 프로그램은 종료하고 putty를 실행하자.
putty가 접속할 수 있게 설정하는 2개의 주요 정보는 Host Name(or Ip Address) 와 인증파일이다. 먼저 Host Name에 입력할 정보를 확인하기 위해 다시 AWS의 Management Console에서 방금전 생성한 EC2 Instance의 정보를 확인하자.
해당 EC2 Instance 를 선택하면 Public DNS 항목이 나타난다. Public DNS 길이가 길기 때문에 Instance Dashboard에 바로 나타나지 않을 수 있다. 아래의 Description 탭을 클릭하면 Public DNS의 Full Name을 확인할 수 있다.
Putty의 Host Name 컬럼에 바로 이 Public DNS를 붙인다. 기본적으로 Putty 접속은 username@Public DNS 와 같은 접속환경을 허용한다. 여러분이 생성한 EC2 Instance 가 Amazon Linux AMI라면 username은 ec2-user가 된다. 따라서 Host Name 컬럼에 ec2-user@ec2-52-88-11-182.us-west-2.compute.amazonaws.com 을 입력하면 된다.
다음으로는 방금 전 puttygen으로 생성한 ppk 파일을 로드하는 것이다.
먼저 화면 왼쪽 Category 에서 Connection->Auth 메뉴를 선택한다. "Private Key file for authentication " 에서 Browse 를 클릭한 후 해당 ppk 파일을 선택한다.
Host Name 설정과 private key 파일 설정이 완료되었으면 맨 아래 Open 버튼을 클릭하여 접속한다. 성공적으로 접속되면 아래와 같은 화면이 나타날 것이다.
2. SecureCRT로 접속하기.
SecureCRT로 접속하는 방법은 Putty 접속과 유사하다. SecureCRT는 더 편리하게도 putty 와 같이 pem 파일을 ppk로 변경하지 않고 pem 파일 그대로 적용 가능하다.
먼저 Quick Connect 메뉴를 선택하여 접속화면을 열자. Protocol 항목은 SSH, Port 는 22번을 확인한 뒤, EC2 Instance의 Public DNS를 Host Name 항목에 복사/입력한다. 다음 username 항목에 ec2-user 를 입력한다.
Authentication 항목에서 PublicKey를 마우스로 클릭하면 옆의 Properties 버튼이 활성화 된다. PublicKey 를 마우스로 클릭하지 않으면 Properties 버튼이 활성화 되지 않으므로 유의한다. 활성화된 Properties 버튼을 클릭한다.
Public Key Properties 화면의 Default 는 use global public key setting임. 이를 use session public key setting으로 변경함.
Session Settings 에서 use identity or certificate file 을 선택한 뒤, AWS에서 다운로드 받은 Key pair 파일 (pem 확장자) 를 선택하여 OK 버튼을 누른다.
Quick Connect에서 Connect버튼을 누르면 아래와 같이 성공적인 접속 화면이 나타난다.