SSH 호스트 키 변경 경고는 사용자를 인증하는 개인 키 경고가 아니라 접속 대상 서버의 신원이 달라졌다는 경고입니다. 기록을 지우기 전에 실제 재설치·교체 승인과 새 지문을 독립된 신뢰 경로로 확인해야 합니다.
OpenBSD ssh(1)는 호스트 키가 바뀌면 경고하고 서버 가장이나 중간자 공격을 막기 위해 로그인 동작을 제한할 수 있다고 설명합니다. 새 지문을 경고가 뜬 바로 그 연결에서만 받아들여서는 독립 확인이 아닙니다.
서버 키와 사용자 키는 서로 다른 신원을 가리킵니다
SSH transport 단계는 서버의 host authentication을 수행하고, 사용자 인증은 그 위의 별도 프로토콜에서 처리됩니다. IETF RFC 4253도 transport layer의 host authentication과 사용자 인증 범위를 구분합니다. 따라서 known_hosts의 항목은 내가 접속하는 서버를 기억하는 자료이며, 개인 공개키를 authorized_keys에 등록하는 작업과 같은 것이 아닙니다.
OpenBSD ssh(1) 문서는 호스트 키의 식별자가 바뀌면 경고가 나타나고, 기존 known_hosts 데이터베이스가 서버 식별을 확인하는 데 쓰인다고 설명합니다. 실제 재설치로 키가 바뀌었을 수도 있지만, DNS·라우팅 변경이나 공격자가 다른 서버로 유도한 경우에도 같은 경고가 생길 수 있습니다. 경고를 없애는 것보다 어느 서버에 연결됐는지 독립 검증하는 일이 먼저입니다.
승인 기록과 별도 지문을 맞춰 판정합니다
| 사례 | 관측 | 독립 검증 | 판단 |
|---|---|---|---|
| 재설치 승인 | db.example.com, 기존 FP-EDU-A, 경고에 새 FP-EDU-B | 승인 변경 CHG-EDU-21과 별도 콘솔의 새 fingerprint가 FP-EDU-B와 일치 | 대상·변경·지문이 확인된 뒤 승인 절차로 known_hosts 갱신 |
| 미승인 변경 | bastion.example.com, 기존 FP-EDU-X, 새 FP-EDU-Y | 변경 기록 없음; 새 지문을 경고가 뜬 같은 SSH 연결에서만 확인 | 독립 검증이 없어 접속 보류, 소유자·네트워크 경로 조사 |
| 호스트명 변경 | DNS 이름은 같지만 연결 주소가 다름 | DNS·로드밸런서·관리 콘솔 기록이 아직 일치하지 않음 | 이름만 같다고 동일한 신뢰 대상이라 단정하지 않음 |
표에서 첫 번째 지문 비교는 별도 관리 콘솔에서 전달된 fingerprint와 기존 기록을 비교합니다. 관리 콘솔이 같은 의심 네트워크 경로를 통과하거나 변경 승인서 자체가 검증되지 않았다면 그 정보도 독립 출처인지 재평가해야 합니다. 두 번째 사례처럼 확인 수단이 경고를 보여 준 SSH 연결 하나뿐이면 새 지문을 신뢰할 근거가 부족하므로 연결을 멈추고 호스트 소유자에게 확인합니다.
키 변경을 확인하는 순서
- 접속하려던 호스트 이름, 포트, 실제 연결 주소와 known_hosts에 기록된 기존 지문을 보존합니다.
- 변경 승인서·재설치 기록의 대상 호스트와 시간, 승인자를 확인합니다. 문서의 호스트명만 같다고 같은 장비라 가정하지 않습니다.
- 클라우드 관리 콘솔, 구성 관리 시스템, 보안팀이 승인한 전화번호 등 현재 연결과 분리된 경로에서 새 host-key fingerprint를 확인합니다.
- 독립 경로의 새 지문과 경고 화면의 값을 문자 단위로 비교하고 주소·포트·알고리즘·이름까지 맞춥니다.
- 일치하면 조직이 승인한 known_hosts 갱신 절차를 따릅니다. 불일치하거나 확인할 수 없으면 접속을 보류하고 네트워크·DNS·호스트 변경을 조사합니다.
- 확인 근거와 변경 담당자를 기록하고, 사용하지 않는 낡은 키 기록을 정리할지는 별도 승인 절차에서 판단합니다.
같은 세션에서 본 지문은 자체 검증이 아닙니다
OpenBSD ssh-keygen은 공개키 fingerprint를 표시할 수 있지만, 지문을 출력했다는 행위만으로 소유 서버의 신원이 확인되지는 않습니다. fingerprint는 신뢰 가능한 별도 채널의 값과 비교해야 합니다. SSHFP DNS 검증 같은 대안도 해당 DNS 데이터의 신뢰·검증 조건을 충족할 때만 사용할 수 있으므로, 이번 교육 사례에서는 우회책처럼 제시하지 않습니다.
복습: 새 키를 알 수 있는 출처가 연결 하나뿐이면?
문제: 서버 재설치 승인은 찾지 못했고 접속 경고에 새 fingerprint가 보입니다. 이 값을 known_hosts에 반영해도 될까요?
정답: 아직 반영하면 안 됩니다. 경고가 뜬 연결만으로는 서버 키를 독립 확인할 수 없습니다. 호스트 소유자와 승인 기록을 통해 별도 신뢰 경로에서 fingerprint를 확인할 때까지 접속을 보류합니다.
정답을 가리고 확인해 보세요
이 글을 위해 만든 학습 예시이며 공식 기출문제나 판매 카드의 인용이 아닙니다.
가상 db.example.com의 기존 fingerprint EDU-A와 경고의 새 EDU-B가 다릅니다. 재설치 승인 기록은 있고, 별도 관리 콘솔에서도 EDU-B를 확인했습니다. 다음 안전 조치와 반드시 피할 판단 하나를 답하세요.
정답과 해설 확인
대상 호스트·시간·주소가 승인 기록과 맞는지 확인한 뒤 조직 절차에 따라 known_hosts를 갱신합니다. 사용자 공개키 권한 문제와 혼동하거나 경고만 보고 새 키를 신뢰하지 않습니다.호스트 키는 서버 신원을 확인합니다. 변경 승인은 맥락을, 독립 fingerprint 출처는 새 키 값을 검증하는 근거를 제공합니다.