터미널을 통해 SSH 접속 시 "Host key verification failed" 오류가 발생하는 이유는 클라이언트가 접속하려는 서버의 호스트 키를 검증할 수 없기 때문입니다.
터미널에 아래와 같은 메시지가 보여지게 됩니다.
ssh -i rsa_4096 id@127.0.0.4
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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:
Please contact your system administrator.
Add correct host key in /Users/hajinho/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /Users/hajinho/.ssh/known_hosts:26
Host key for 127.0.0.4 has changed and you have requested strict checking.
Host key verification failed.
이 오류는 여러 가지 이유로 발생할 수 있습니다. 다음은 그 이유와 해결 방법입니다.
1. 서버의 호스트 키가 변경된 경우
서버의 호스트 키가 변경되면 클라이언트의 ~/.ssh/known_hosts 파일에 저장된 키와 일치하지 않기 때문에 오류가 발생합니다. 서버가 재설치되거나 SSH 설정이 변경되면 호스트 키가 변경될 수 있습니다.
해결 방법: 기존의 호스트 키를 삭제하고 새로운 호스트 키를 추가합니다.
ssh-keygen -R [hostname or IP address]
ssh [hostname or IP address]
2. 서버의 IP 주소가 변경된 경우
서버의 IP 주소가 변경되었지만 호스트 이름은 변경되지 않은 경우에도 호스트 키 검증 오류가 발생할 수 있습니다. 클라이언트는 호스트 이름과 연결된 이전 IP 주소의 호스트 키를 기억하고 있기 때문입니다.
해결 방법: ~/.ssh/known_hosts 파일에서 해당 서버의 이전 엔트리를 삭제합니다.
ssh-keygen -R [hostname]
ssh [hostname]
3. Man-in-the-Middle 공격 가능성
호스트 키 검증은 Man-in-the-Middle (MITM) 공격을 방지하기 위해 사용됩니다. 호스트 키가 예상치 않게 변경되었을 때 이 오류가 발생하면 MITM 공격의 가능성을 의심해봐야 합니다.
해결 방법: 서버 관리자에게 문의하여 호스트 키가 변경된 것이 정상인지 확인합니다. 변경이 정상적이라면 새로운 호스트 키를 수동으로 추가합니다.
4. 클라이언트의 ~/.ssh/known_hosts 파일이 손상된 경우
클라이언트의 ~/.ssh/known_hosts 파일이 손상되었거나 잘못된 형식으로 인해 호스트 키를 검증할 수 없는 경우에도 이 오류가 발생할 수 있습니다.
해결 방법: ~/.ssh/known_hosts 파일을 확인하고 문제가 있는 부분을 수정하거나 필요한 경우 파일을 삭제한 후 다시 서버에 접속하여 호스트 키를 추가합니다.
rm ~/.ssh/known_hosts
ssh [hostname or IP address]
위의 방법 중 하나를 통해 "Host key verification failed" 오류를 해결할 수 있습니다.
'개발라이프' 카테고리의 다른 글
Flutter Firebase where와 order by를 같이 사용할때 주의할 점 (0) | 2022.12.07 |
---|---|
apk 직접 설치 후 열기 버튼 비활성화 문제 (0) | 2022.11.17 |
Flutter 삼항연산자 vs 이중물음표(??) (0) | 2022.10.11 |
opencsv custom 하기 (0) | 2022.07.29 |
Flutter GetX에서 arguments사용하기 (0) | 2022.06.22 |