이 글은 실질적으로 내가 더 정확히 알게 된 것을 기록하기 위한 것!
SSH 프로토콜을 통해 클라이언트에서 서버로 접속할 때 인증 방식은 비밀번호 인증과 키 기반 인증 2가지가 있음.
* SSH 프로토콜을 통해 GitHub 저장소와 AWS EC2에 접속하는 방식은 비대칭 키 방식을 사용하며 키 기반 인증을 통해 비밀번호 없이 접속할 수 있도록 한 방식이다.
- GitHub는 클라이언트에서 생성한 공개 키를 GitHub 서버에 등록
- AWS EC2는 서버에서 생성한 개인 키를 사용자에게 제공
공통적으로 클라이언트가 개인 키를 가지고 있기 때문에 키 기반 인증이 가능하다.
키 기반 인증 방식은 아래와 같다.
1. 클라이언트가 서버에 연결 요청을 하면 서버에서 무작위 메세지를 클라이언트로 전송한다.
2. 클라이언트에선 해당 메세지를 받고 개인 키를 통해 암호화하고 해당 메세지를 서버로 전송한다.
3. 서버에서 암호화된 메세지를 받아 복호화한 뒤 초기에 클라이언트로 전송했던 메세지와 일치한지 비교한다.
4. 일치하면 SSH 세션 연결 성공
호스트 OS 위에서 동작하는 하이퍼바이저 2유형과 달리 1유형은 베어메탈 위에서 동작하고 전가상화와 반가상화로 나뉨
* AWS EC2에서 내가 이용 중인 클라우드 서버는 하이퍼바이저 1유형인 베어메탈 서버로 동작되며 전가상화이다.
- 위 사진을 보면 Hardware Vendor에 나와있는 것은 하이퍼바이저 중 하나인 Xen을 의미하는 것
- Hardware Model의 경우 HVM domU는 AWS 서버에 올리는 OS의 이미지가 전가상화(HVM)와 반가상화(PV) 중에 어떤 유형의 동작방식인 커널을 사용하고 있는 지를 알려주는 것
참고로 AWS에서 예전엔 반가상화인 PV를 쓸 것을 권장했지만 현재는 전가상화인 HVM을 쓸 것을 권장하고 있다고 한다.
HVM 가상화 기능이 향상되기도 했고, HVM AMI용 PV 드라이버도 제공되어 굳이 PV를 쓸 필요가 없다고 한다.
실제로 2023-03-03 0시 54분 기준 EC2 인스턴스를 시작하기 위해 AMI를 고를 때 보면 PV는 검색해야 겨우 48개가 나온다 (해당 페이지에서 우선적으로 보여주는 quickstart ami엔 있지도 않음)
참고
Linux AMI 가상화 유형 - Amazon Elastic Compute Cloud
Linux AMI 가상화 유형 Linux Amazon Machine Image는 PV(반가상화) 또는 HVM(하드웨어 가상 머신)의 두 가지 유형의 가상화를 사용합니다. PV AMI와 HVM AMI의 주요 차이점은 부팅 방법과 더 나은 성능을 위해 특
docs.aws.amazon.com
Amazon EC2 key pairs and Linux instances - Amazon Elastic Compute Cloud
Amazon EC2 key pairs and Linux instances A key pair, consisting of a public key and a private key, is a set of security credentials that you use to prove your identity when connecting to an Amazon EC2 instance. Amazon EC2 stores the public key on your inst
docs.aws.amazon.com