ssh 접속 시 host key 관련 에러

김민재·2025년 5월 3일

상황

학교 캡스톤프로젝트 진행 중 서버에 ssh로 접속하려고 했는데, 다음과 같은 오류가 발생했다.

C:\Users\MJKIM>ssh -p 30124 root@cscloud.gpu3.hufs.ac.kr
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    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:CpfjENv0xx058zFRLFIQVP0k0H03z+pdmfykDoD+CJw.
Please contact your system administrator.
Add correct host key in C:\\Users\\MJKIM/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in C:\\Users\\MJKIM/.ssh/known_hosts:6
Host key for [cscloud.gpu3.hufs.ac.kr]:30124 has changed and you have requested strict checking.
Host key verification failed.

이유

이전에 cuda 드라이버에 관한 문제가 있어 이를 해결하기 위해 파드를 초기화하는 과정에서 서버 host key가 달라졌고, 로컬에 저장된 정보는 초기화되기 이전의 host key 정보를 가지고 있어 둘이 달랐기 때문이었다.

해결 방법

ssh-keygen -R [cscloud.gpu3.hufs.ac.kr]:30124

해당 명령을 통해 로컬의 host key 정보를 삭제한 후 접속하였다.


+host key란?

정의

Host key는 SSH 서버가 자신이 누구인지 증명하기 위해 사용하는 고유한 공개/개인 키 쌍이다. (사용자가 서버에 접속할 때의 인증 과정에서 사용되는 공개/개인 키 쌍과는 다름)

작동 방식

기본적으로 클라이언트가 SSH로 서버에 처음 접속할 때, 서버는 자신의 공개 키를 클라이언트에게 제공하며, 클라이언트는 이 공개 키를 신뢰할 수 있는 서버인지 확인하는 데 사용한다.

서버는 host key 쌍을 보유하며, 클라이언트가 서버에 접속하면 서버는 자신의 공개 키를 클라이언트에게 보내고, 클라이언트가 서버에 접속할 때 보낸 '임의의 값'에 자신의 개인 키로 서명하여 보낸다.

그러면 클라이언트는 받은 서명값을, 이미 알고 있는 host key의 공개 키로 검증하여 서버가 진짜로 해당 host key의 개인 키를 알고 있는지 확인하고, 확인되면 신뢰할 수 있는 서버로 간주하는 원리이다.

profile
넓이보다 깊이있게

0개의 댓글