본문 바로가기

IT/Linux

SSH 접속 오류 : REMOTE HOST IDENTIFICATION HAS CHANGED - RSA key 오류 해결법

반응형

서버 작업을 한번씩 하면 이것 참 맨날 오류 찾다가 시간을 다 보내는것 같다.

 

늘 그렇지만 포스팅하고나면 기억이 날법도 한데.. 결과는 붕어 수준으로 돌아서면 잃어버리고 내가 맨날 들어와서 보는 메모장이 되어버렸다 ㅋㅋㅋ...

 

모아놨다 정리해야지 하다간 끝도 없을 것 같아 대충이라도 끄적이고, 모두에게 도움이 되길 바랄 뿐이다. 

 

여튼 나름 많이 찾아보고 가는 글들이 있어 뿌듯하기도 ...?. 서두가 길었다.!!

 

SSH 접속 오류 [ WARNING : REMOTE HOST IDENTIFICATION HAS CHANGED ]

 

리눅스 서버에서 서버간 통신을 위해 가장 많이 사용하는 서비스인 SSH를 사용하다보니, 상기 오류가 발생해 상당히 당황스러웠다.

 

그래도 많은 분들이 해당 오류에 대해 해결 법을 많이 적어두어, 그리 어렵지 않게 해결 한 오류 경고 메세지이기도 하다.

 

메세지 내용 (속독은 빨간 명령어만 보세용!)

 

 

SSH 를 통해 위와 같이 192.168.0.2 접속 하려 하니, WARNING : REMOTE HOST IDENTIFICATION HAS CHANGED 메세지가 발생하며 당황케 만든다....

그리고 눈에 보이는 MAN-IN-THE-MIDDLE ATTACK? ... 조금 두렵기도 하다.

 

이미지 속 내용은 아래와 같다. 

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    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 RSA key sent by the remote host is
7a:1a:88:........(생략)
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending RSA key in /root/.ssh/known_hosts:12
RSA host key for 192.168.0.2 has changed and you have requested strict checking.
Host key verification failed. 


해석하면, 대략 내용은 원격 호스트 식별 정보가 변경되었다.

기존에 등록되어있던 RSA key가 다르다.

누군가 기존 접속 정보를 바꾸어 정보를 가로채는 man-in-the-middle attack 에 발생에 유의해라.

해당 경고를 제거하려면 /root/.ssh/known_hosts 올바른 Host Key를 추가해라.

 

[root@host~]# vi  /root/.ssh/known_hosts

 

위와 같이 해당 known_hosts 파일을 열어보면 아래와 같이 기존에 접속했던 사이트들의 ssh-rsa 키 값들이 정리가되었는걸 볼 수 있다. 

 

SSH knwon_hosts 란? 명칭과도 같이 알려진 호스트 정보를 말한다. 쉽게 기존에 자신이 ssh를 통해 접속 했다면, 해당 서버의 key를 받아 로컬에 저장하고 있는 구조이다. 

 



 발생된 SSH 접속 오류는 IP는 동일한데, 목적지 서버 장비가 바뀌었다거나,
  Vmware 와 같은 가상 컴퓨터의 IP는 동일하지만,
 실질적인(물리적) 서버가 바뀌었을 경우 나오는 일종의 경고성 알림이다.

 

해결법

-1,2,3 중 어떤 방법을 해도 됨.

- 작성자는 3번 후 1번 방법을 사용함. 근데 뒤에 보면 다 똑같음...

 

방법 1[root@host~]# ssh-keygen -R 192.168.0.2(대상 서버 IP)

간단하게 ssh-keygen -R [서버IP] 명령어를 통해  known_hosts 의 내용을 갱신 해주는 방법이 있다.

 

방법 2[root@host~]# rm /root/.ssh/known_hosts 

known_hosts 파일을 지우기. 해당 파일은 지워져도 다시 ssh 접속 할 떄 해당 파일이 생성된다.

혹시나 불안하다면 [root@host~]# mv /root/.ssh/known_hosts  /root/.ssh/known_hosts.temp

와 같이 백업을 해두는것도 방법이다.


 

방법 3. [root@host~]# vi /root/.ssh/known_hosts 

vi 편집기를 통해 해당 대상 아이피로 이동하여 dd 눌러서 행을 삭제해준다.

페이지상 길게 나와서 그렇지 IP당 1개의 행으로 길게 적혀있다.

 IP주소 위에서 dd하면 등록된 RSA key 만 삭제 된다. wq 저장은 필수.

 

해결후

 

위와 같이 해당 서버로 정상적으로 접속 되는걸 확인 할 수 있다.

 

다만! Are you sure you want to continue connecting (yes/no)? 라는 메세지가 계속 나온다.

해당 메세지에서 yes 를 눌러서 접속 하면 되지만, 계속 접속 할 떄마다 묻는건 열받는다.

 

 

 

보충

 

해당 메세지에서 yes 를 눌러서 접속 하면 되지만 접속 할때마다 저 메세지가 나온다.

 

마지막이다. 

 

 Are you sure you want to continue connecting (yes/no)? 

* 리눅스 버전에 따라 수행 (버전 모르면 둘 다 해보면 됨.ㅋㅋ)

[root@host~]# service sshd restart

[root@host~]# systemctl restart sshd 

 

 

known_hosts 호스트에 등록 후에 sshd 서비스 재시작을 해주지 않으면 언제나 그렇듯 기존 로드된 내용을 참고하기 떄문에 계속 메세지가 나오므로, 반드시 sshd 서비스 재시작을 해주면 위와 같이 정상적으로 된다.

 

이상으로 SSH 접속 오류 : REMOTE HOST IDENTIFICATION HAS CHANGED - RSA key 오류 해결 완료!!

 

의외로 Are you sure you want to continue connecting (yes/no)? 관련해서 많이 궁금할것 같은데 경고 없애는 이상한 설정하지마시고 sshd 서비스 재시작 해주길 바란다.

 

안될땐 재부팅이라는게 실감된다 하하하

 

가만보면 저 경고는 단순 경고가 아니라 IP 변조를 통해 자신이 접속하려는 서버의 접속 정보를 캐는걸 방지하기위해 알려주는 매우 유용한 경고 메세지 인것 같다.  

서버 관리자라면 경고가 뜬다면 한번쯤 의심해 볼 필요도 있을것 같다.

 

유용하게 잘 보셨으면 공감이나 한번 눌러주면 좋겠다.

글투가 왜 이렇게 되버렸는지 모르겠지만 ㅋㅋ 여튼 댓글 환영한다. 

그리구 잘못된 정보는 알려주세요~

 

반응형