C.W.K.
Stream
Lesson 10 of 12 · published

Fingerprint 검증

~15 min · fingerprint, tofu, out-of-band, ssh-keyscan

Level 0Pinger
0 XP0/101 lessons0/12 achievements
0/150 XP to next level150 XP to go0% complete

Out-of-band 검증, 제대로 하는 법

Host 첫 SSH 연결이 fingerprint 보여주고 신뢰하냐고 물어. 교과서적 이상 흐름:

  1. 다른, 신뢰하는 채널로 서버 fingerprint 받기 — 물리 접근, 클라우드 provider 콘솔, 그걸 세팅한 admin 의 슬랙 메시지.
  2. SSH 로 연결. 보여준 fingerprint 를 갖고 있는 거랑 비교.
  3. 맞으면 yes. 아니면 멈춤.

서버에서 fingerprint 읽기

서버 자체에서 host key 가 /etc/ssh/ 에 살아. 각 키 타입 (ed25519, RSA, ECDSA) 가 자기 페어 가짐. ssh-keygen -lf 가 어느 키 파일이든 fingerprint 출력. 원격에서 ssh-keyscan 이 네트워크로 public host key 가져옴 — known_hosts 미리 채우기에 유용.

실용적 중간

네 라우터 뒤 집 LAN 이면 첫 연결 TOFU 가 fine. Threat model — 누군가 네 LAN 에서 노트북에서 사무실 맥으로의 첫 SSH 를 능동적으로 MITM — 진짜지만 대부분 집 셋업엔 작아. 새 클라우드 VM 은 60 초 더 들여서 provider 콘솔 검증.

Code

Fingerprint 읽기 — 양쪽·bash
# On the server itself, all host key fingerprints
ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub
ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub
ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub

# From a remote machine — grab via the network
ssh-keyscan -H 192.168.1.100 2>/dev/null | ssh-keygen -lf -

# Pre-populate known_hosts so the first interactive connection has no prompt
ssh-keyscan -H 192.168.1.100 >> ~/.ssh/known_hosts

External links

Exercise

Shell 접근 가능한 머신에서 ssh-keygen -lf 로 host key fingerprint 셋 다 출력. 메모. 노트북에서 ssh-keyscan -H that-host 2>/dev/null | ssh-keygen -lf - 돌려서 일치 확인. 진짜로 서버 fingerprint 받아들이기 전 검증할 round-trip.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.