Computer Science/security

SSH 개념 및 사용자 인증흐름 - AWS docs 추가

짠백이 2021. 1. 6. 00:18
반응형

이번 포스팅은 SSH의 개념, 사용자 인증흐름, AWS 사용 예시까지 확인해보려합니다.

참고로 해당 포스팅에서 ssh 사용예시로 AWS EC2와 MobaXterm 을 사용하였으며, 해당 서비스와 프로그램에 대한 구체적인 사용방법이 아닌 개념을 이해하기위한 맥락관점에서 설명 할 예정입니다.

 

* AWS EC2 : 아마존 웹 서비스에서 제공하는 클라우드 서비스 (PaaS)

* MobaXterm : SSH, SFTP 등의 원격 접속을 할 수 있는 프로그램 

 

 

1. 개념

  - SSHsecure shell 의 약자로써 원격지 PC에 보안접속을 할 수 있는 CLI 기반 프로그램 또는 암호화 프로토콜을 의미합니다.

 

* CLI (Command Line Interface) : 명령줄 인터페이스 (<=> GUI )

 

2. 특징

  2.1 원격접속 프로그램 telnet 이 평문으로 전송하기 때문에 발생하는 보안 이슈를 해결하기 위해서 등장

  2.2 보안 통신을 위해 공개키 (=비대칭키) 암호화 방식으로 사용자를 인증

  (* 중요 : 전자서명과 동일한 방식의 인증)

 

3. 사용자 인증 흐름

  3.1 client 가 server 에 ssh 연결 요청

  3.2 server 는 data(hash value) 를 클라이언트에게 전송 

  3.3 client 는 server 로 부터 받은 data를 private key 로 암호화해서 server 에게 전송

  3.4 server 는 암호화된 data를 public key 로 복호화하여 자신이 보낸 hash value 인지 비교하고 일치할 경우 사용자 (client)를 인증함  

 * 이유 : server 가 가지고있는 public key로 복호화 된 것은 해당 data를 보낸 client 가 private key를 가지고 있다는 의미이기 때문임 

 

SSH 인증 흐름

 

 

 

4. AWS 사용 예시 

 

* 참고

 - client = ssh 접속을 시도하는 주체 (local PC)

 - server = AWS EC2 (원격지 PC)

 

  4.1 [server] AWS EC2 인스턴스 정보

  - IP는 임의의 고정 IP 인 123.456.789.11 설정하였다고 가정하였습니다.

  - AWS EC2 생성 시 발급되는 private key 를 local PC에 저장합니다. (아래 캡처에는 해당 내용은 생략됨)

 

  4.2 [client] SSH 설정

- SSH 접속을 위해 원격지 PC (AWS EC2)의 IP 123.456.789.11 을 입력하고 port는 22를 입력합니다.

- AWS EC2 생성 시 발급받은 private key의 경로를 등록합니다.

(* port number 는 다른 번호도 사용 할 수 있으나 일반적으로는 22를 사용합니다.)

 

  4.3 [client] SSH 접속 완료

  - 위의 설정으로 원격지에 접속을 시도하면 원격지 PC(AWS EC2)는 local PC에서 priavte key 로 암호화한 패킷을 public key로 복호하하여 데이터를 비교함으로써 local PC (사용자)를 인증합니다.

  - 사용자 인증이 완료되면 정상적으로 AWS EC2에 접속 할 수 있습니다.

 

 

 

5. key pair 참고 

* 생활코딩 SSH key : https://opentutorials.org/module/432/3742 

* AWS EC2 key pair : https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/create-key-pairs.html  

반응형