비대칭 암호, 한 그림으로
SSH 키는 페어로 와 — private key 랑 public key, 수학적으로 묶임. Public key 는 누구한테나 우편으로 보내는 자물쇠라고 봐 — 잠글 수 있지만 못 풀어. Private key 가 그 자물쇠를 여는 유일한 열쇠고, 절대 네 머신 떠나지 않아.
인증이 진짜 동작하는 법
- 서버가
~/.ssh/authorized_keys에 네 public key 갖고 있음. - 네가 연결. 서버가 무작위 challenge 생성하고 네 public key 묶인 알고리즘 파라미터로 서명.
- 네 클라이언트가 private key 로 challenge 서명하고 signature 반환.
- 서버가 public key 로 signature 검증. 맞으면 들어감.
중요한 거 — private key 는 절대 wire 안 건너. 서버가 못 봐. Challenge-response 메커니즘이 "갖고 있다"를 "보여주지" 않고 증명.
키가 비밀번호 이기는 이유
- 강도 — 256-bit ed25519 키는 어떤 비밀번호보다 천문학적으로 brute-force 어려움.
- 전송 없음 — 비밀이 절대 안 옮겨다님.
- 재사용 없음 — 장치마다 자기 키. 한 장치 침해돼도 나머진 안전.
- 장치별 revocation — authorized_keys 에서 한 줄 빼면 한 장치 권한 박탈.
- 자동화 친화 — Cron, CI, 스크립트가 저장된 비밀번호 없이 인증.