"WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!"발생시의 대처 방법

소개



이전에 다른 하드웨어에서 사용했던 것과 동일한 호스트 이름 또는 IP 주소가있는 다른 호스트에 SSH로 연결하려고하면 경고 (WARNING : REMOTE HOST IDENTIFICATION HAS CHANGED!)가 표시되고 연결 실패 합니다.
RaspberryPi OS는 초기 설정에서 호스트 이름으로 raspberrypi가 설정되어 있으므로 동일한 PC를 사용하여 두 개 이상의 RaspberryPi의 초기 설정을 시도하면 두 번째 이후에 호스트 이름으로 RaspberryPi에 SSH 연결 경고(WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!)가 표시되고 연결이 실패합니다.
본고에서는 SSH로 접속하려고 할 때 경고(WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!)가 표시되는 경우의 대처법에 대해 설명합니다.

사용 장비



PC
MacBook Pro 16
2.3GHz 8코어 Intel Core i9
16GB 2667MHz DDR4
macOS Big Sur ver.11.1
RaspberryPi 본체
RaspberryPi 4 모델 B
8GB RAM
카메라 모듈
RaspberryPi Camera Module V2
AC 충전기(RaspberryPi 전원용)
ELECOM
MPA-ACUQ01WF
입력 AC 100-240V 50/60Hz 0.6A
출력 DC 3.6-6V 3A, 6-9V 2A, 9-12V 1.5A
microSD 카드(OS 설치됨)
SanDisk
microSDXC UHS-I 카드
32GB

해결 방법



PC는 과거에 SSH 접속한 호스트의 이름 혹은 IP 주소와 그 공개키의 조합을 known-hosts라고 하는 파일에 기록하고 있습니다. SSH 연결을 할 때 호스트에서 보낸 공개 키를 known-hosts의 정보와 일치시키고 일치하지 않으면 스푸핑과 같은 가짜 호스트에 대한 연결을 피하기 위해 경고를 표시합니다. SSH 연결을 중지합니다.


이 상태를 해소하기 위해서는 PC가 기억하고 있는 대상의 호스트명과 공개키의 조합의 정보를 삭제합니다.
삭제하려면 ssh-keygen 명령을 사용합니다. 터미널에서 ssh-keygen -R 【ホスト名またはIPアドレス】 를 입력합니다. 여기서 [호스트 이름 또는 IP 주소] 부분은 SSH로 연결하려고 시도한 호스트 이름 또는 IP 주소이며 RaspberryPi의 초기 설정시 raspberrypi.local입니다.

known-hosts에서 raspberrypi.local의 정보를 제거한 후 SSH 연결을 다시 시도하면 이번에는 경고가 표시되지 않고 로그인이 가능합니다.


known-hosts는 홈 디렉토리 아래/ssh/아래에 있습니다.
ssh-keygen 구현 전후의 known-hosts를 비교하면 raspberrypi.local의 정보가 지워지고 있음을 알 수 있습니다.

ssh-keygen 구현 전 known-hosts



호스트 이름 raspberrypi.loacl의 항목이 있습니다.


ssh-keygen 실행 후 known-hosts



호스트 이름 raspberrypi.loacl의 항목이 없습니다.


참고



이번 작업의 실시에 있어서, 하기를 참고로 했습니다.
  • SSH 연결 오류 해결 방법: .ssh/known_hosts에서 특정 호스트를 제거/삭제하지 않고 해결하는 세 가지 방법
  • ssh-keygen 명령 사용법
  • 【SSH를 처음 만지는 사람에게】 Linux의 호스트 간 인증이란?
  • 좋은 웹페이지 즐겨찾기