본문 바로가기

리눅스

ssh "Host key verification failed" 오류 해결 방법

728x90

ssh "Host key verification failed" 오류 해결 방법

$ ssh root@192.168.0.158
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ED25519 key sent by the remote host is
SHA256:e5mrad7bJit8z4Rz/wCfi3cqUpwJc8zaUpdYcxY+eY0.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /root/.ssh/known_hosts:3
  remove with:
  ssh-keygen -f "/root/.ssh/known_hosts" -R "192.168.0.158"
Host key for 192.168.0.158 has changed and you have requested strict checking.
Host key verification failed.

"Host key verification failed" 오류는 SSH 클라이언트가 서버의 호스트 키를 검증할 수 없을 때 발생하는 문제입니다.

 

1. 호스트 키 검증 오류의 이유 확인

이 오류는 일반적으로 몇 가지 이유로 발생할 수 있습니다. SSH 클라이언트가 이전에 접속했던 서버의 호스트 키와 현재 서버의 호스트 키가 일치하지 않을 때 발생할 수 있습니다. 또는 호스트 키가 변경되었을 수 있습니다.

 

2. 호스트 키 새로 고침

호스트 키가 변경되었을 가능성이 있는 경우, 클라이언트에 저장된 호스트 키를 새로 고쳐야 합니다. 호스트 키를 재생성하고 클라이언트에 저장하려면 다음 명령어를 사용합니다.

ssh-keygen -R <hostname>
ssh-keyscan <hostname> >> ~/.ssh/known_hosts

여기서 <hostname>은 접속하려는 서버의 호스트 이름 또는 IP 주소입니다.

 

3. SSH 설정 파일 수정

SSH 설정 파일 (~/.ssh/config)을 수정하여 호스트 키 검증을 비활성화하거나 무시할 수 있습니다. 다음과 같이 설정합니다.

vim ~/.ssh/config
Host <hostname>
    StrictHostKeyChecking no
    UserKnownHostsFile /dev/null

위에서 <hostname>은 호스트 이름 또는 IP 주소입니다. 이렇게 설정하면 호스트 키 검증 절차가 생략됩니다. 하지만 이렇게 설정하는 것은 보안 위험을 초래할 수 있으므로 신중하게 사용해야 합니다.

728x90

 

4. known_hosts 파일 수정

호스트 키 검증 오류가 지속되면 클라이언트에 저장된 known_hosts 파일을 수정하여 해당 호스트 키를 삭제하거나 업데이트할 수 있습니다. 아래와 같이 명령어를 사용합니다.

ssh-keygen -R <hostname>
ssh-keygen -f "/root/.ssh/known_hosts" -R "192.168.0.158"
$ ssh-keygen -f "/root/.ssh/known_hosts" -R "192.168.0.158"
# Host 192.168.0.158 found: line 2
# Host 192.168.0.158 found: line 3
/root/.ssh/known_hosts updated.
Original contents retained as /root/.ssh/known_hosts.old

 

5. ssh-agent 재시작

만약 ssh-agent를 사용하고 있는 경우, ssh-agent를 재시작하여 호스트 키 검증을 다시 시도해볼 수 있습니다. 다음 명령어를 사용합니다.

ssh-agent -k
eval "$(ssh-agent -s)"

 

6. 디버깅 모드 활성화

-v 또는 -vvv 옵션을 사용하여 SSH 클라이언트의 디버깅 모드를 활성화하면 더 자세한 오류 메시지와 호스트 키 검증 절차의 로그를 확인할 수 있습니다.

ssh -v user@hostname

 

위의 단계를 순차적으로 시도하여 "Host key verification failed" 오류를 해결할 수 있습니다. 오류의 원인에 따라 적절한 조치를 취하여 SSH 연결을 성공적으로 수립할 수 있도록 합니다.

 

728x90