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·라우팅 변경이나 공격자가 다른 서버로 유도한 경우에도 같은 경고가 생길 수 있습니다. 경고를 없애는 것보다 어느 서버에 연결됐는지 독립 검증하는 일이 먼저입니다.

승인 기록과 별도 지문을 맞춰 판정합니다

호스트명·변경표·fingerprint는 창작 교육 값입니다. 실제 SSH 연결이나 키 파일을 확인하지 않았습니다.
사례관측독립 검증판단
재설치 승인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 연결 하나뿐이면 새 지문을 신뢰할 근거가 부족하므로 연결을 멈추고 호스트 소유자에게 확인합니다.

키 변경을 확인하는 순서

  1. 접속하려던 호스트 이름, 포트, 실제 연결 주소와 known_hosts에 기록된 기존 지문을 보존합니다.
  2. 변경 승인서·재설치 기록의 대상 호스트와 시간, 승인자를 확인합니다. 문서의 호스트명만 같다고 같은 장비라 가정하지 않습니다.
  3. 클라우드 관리 콘솔, 구성 관리 시스템, 보안팀이 승인한 전화번호 등 현재 연결과 분리된 경로에서 새 host-key fingerprint를 확인합니다.
  4. 독립 경로의 새 지문과 경고 화면의 값을 문자 단위로 비교하고 주소·포트·알고리즘·이름까지 맞춥니다.
  5. 일치하면 조직이 승인한 known_hosts 갱신 절차를 따릅니다. 불일치하거나 확인할 수 없으면 접속을 보류하고 네트워크·DNS·호스트 변경을 조사합니다.
  6. 확인 근거와 변경 담당자를 기록하고, 사용하지 않는 낡은 키 기록을 정리할지는 별도 승인 절차에서 판단합니다.

같은 세션에서 본 지문은 자체 검증이 아닙니다

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 출처는 새 키 값을 검증하는 근거를 제공합니다.

이 주제의 회상 연습 이어가기