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 주소입니다. 이렇게 설정하면 호스트 키 검증 절차가 생략됩니다. 하지만 이렇게 설정하는 것은 보안 위험을 초래할 수 있으므로 신중하게 사용해야 합니다.
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 연결을 성공적으로 수립할 수 있도록 합니다.
'리눅스' 카테고리의 다른 글
우분투에서 HPE 서버의 iLO 설정을 관리하기 위해 hponcfg 유틸리티를 설치하고 사용하는 방법 (0) | 2023.08.26 |
---|---|
nc 명령어 - 사용 예시 (0) | 2023.08.23 |
Terraform으로 AWS VPC와 하위 서브넷을 import하는 방법 (0) | 2023.08.20 |
기존 AWS 설정을 Terraform으로 가져오는 일반적인 절차 (0) | 2023.08.20 |
AWS 동적 인벤토리를 사용하여 AWS 인스턴스 목록을 가져오는 방법 (0) | 2023.08.14 |