Linux

[ssh] REMOTE HOST IDENTIFICATION HAS CHANGED!

비번변경 2021. 11. 18. 20:50

리눅스 서버에서 ssh 명령으로 다른 서버에 접속을 시도할 때 아래와 같은 경고 문구가 출력하면서 접속이 불가능한 경우가 있다.

 

$ ssh -i ~/.ssh/PEM.pem -p <PORT> USER@IP
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    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 the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
-생략-
Please contact your system administrator.
Add correct host key in /home/USER/.ssh/known_hosts to get rid of this message.
Offending key in /home/USER/.ssh/known_hosts:12
RSA host key for -생략(ip)- has changed and you have requested strict checking.
Host key verification failed.

 

위 경고 문구는 'man in the middle attack'이라는 중간자 공격에 대한 경고로, ssh로 특정 서버에 최초로 접속할 때에 RSA 공유키를 교환하면서 서로 간의 인증 과정을 거친다. 그 후, 동일 서버에 접속 시에는 기존 인증 정보를 기반으로 접속하는데, 기존과는 다른 서버에 접속할 때 위와 같은 경고가 나올 수 있다.

 

즉, 기존에 접속하던 서버에 변경이 있었을 때 만날 수 있는 경고다. 기존에 인증했던 정보를 초기화하면 해결할 수 있다.

 

해결 방법

- ssh-keygen 명령어 사용

ssh-keygen -R <IP>

( 참고_ 이건 잘 안 먹었다. 아래 방법이 좀 더 직접적.)

 

- ~/.ssh/known_hosts 수정

경고 문구를 보면 Offending key in /home/USER/.ssh/known_hosts:12 라는 내용으로 기존에 인증했던 정보를 찾을 수 있다. 해당 파일을 편집하여 문제가 되는 행을 삭제 후 저장한다.

 

만약 이 방법도 잘 안 먹으면 그냥 know_host 파일 자체를 삭제해보도록 한다. 삭제해도 아무 이상 없다.

 

이후, 재접속을 시도하여 정상적으로 접속이 진행되는지 확인한다.

728x90