<aside> <img src="/icons/info-alternate_blue.svg" alt="/icons/info-alternate_blue.svg" width="40px" />
“공개 키 & 개인 키 Pair” 개인 키는 사용자에게, 공개 키는 서버에 저장되어 인증에 사용
</aside>
우선 **“암호화”**란, “평문”을 권한이 있는 사람만 해독할 수 있는 “난잡한 데이터”로 바꾸는 과정이라고 생각한다.
우리가 ec2 인스턴스에 ssh 접속할 때 .pem 파일을 사용한다. 이 .pem 키는 인스턴스를 생성할 당시 다운로드 받게된다. 이걸 개인키라고 하는데, 공개키는 ec2 인스턴스에 존재한다. 만약 공개키를 확인해보고 싶다면,

cat ~/.ssh/authorized_keys 명령어를 통해 공개키 내용을 확인해볼 수 있다.
그럼 개인키와 공개키를 통해 어떻게 .pem 파일이 본인이 맞음을 증명하는 걸까? **”공개키로 암호화하고 개인키로 복호화”**하는게 핵심이다. 구체적인 과정은 다음과 같다 :
EC2 인스턴스 생성 시
AWS : "키페어 생성"
-> 공개키는 EC2에 저장
-> 개인키는 다운로드(.pem)
SSH 접속 시도
**ssh -i key.pem ec2-user@IP** 명령어 입력
(그럼 이제 인증 과정을 거침)
1. EC2가 랜덤 문자열을 생성(예 : ABC222)
2. EC2가 공개키로 "ABC222"를 암호화 -> "x2#@^7"
3. EC2가 접속하고자 하는 유저에게 "x2#@^7"를 풀어보라고 요청
4. 유저의 로컬에서 개인키로 "x2#@^7"를 복호화해 "ABC222"로 변환해냄
5. 유저가 EC2에 "ABC222"라고 답
6. 그럼 EC2가 개인키를 가진 본인임을 확신
개인키로 암호화된 평문을 복호화하는 과정이 알고 싶다면, https://gngsn.tistory.com/96 글을 보면 좋을 듯 하다.