[번외] 공개키 인증 방식

공개키 기반 인증은 SSH 접속 시 비밀번호 없이 안전하게 인증할 수 있는 방식이다. 클라이언트는 개인 키를 보유하고, 서버는 해당 키에 대응하는 공개 키를 통해 사용자를 검증한다.

인증 과정

1. 키 페어 생성

  • 클라이언트는 공개 키와 개인 키로 이루어진 키 페어를 생성한다.
  • 공개 키는 서버에 배포하고, 개인 키는 클라이언트가 비밀로 유지한다.

2. 공개 키 배포

  • 생성된 공개 키를 서버의 ~/.ssh/authorized_keys 파일에 등록한다.
  • 등록된 공개 키는 클라이언트 인증에 사용된다.

3. SSH 접속 시도

  • 클라이언트는 개인 키를 사용해 서버에 SSH 접속을 시도한다.

4. 서버의 인증 요청

  • 서버는 해당 공개 키가 등록된 클라이언트인지 확인하기 위해 검증 메시지를 보낸다.
  • 이 메시지는 클라이언트의 개인 키로만 처리할 수 있도록 구성된다.

5. 클라이언트의 응답

  • 클라이언트는 받은 메시지를 자신의 개인 키로 암호화하여 서버에 응답한다.

6. 서버의 검증

  • 서버는 응답 메시지를 공개 키로 복호화한다.
  • 복호화가 성공하면 클라이언트가 올바른 개인 키를 가지고 있는 것으로 간주하고 접속을 허용한다.

비유

공개 키는 자물쇠, 개인 키는 열쇠에 비유할 수 있다. 서버(자물쇠)는 오직 해당 열쇠(개인 키)를 가진 클라이언트만이 열 수 있다.