개발/AWS & 서버

aws SSH접속시 RSA 공유키 충돌 문제 - WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

보리ing 2020. 1. 29. 18:41

  aws elastic beanstalk에 spring boot로 매일 데이터를 저장하도록 한 서버를 돌리고 있는데 오늘 데이터가 저장되지 않아 ssh 접속을 시도하였다가 실패하며 본 메세지이다.

 

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    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 ECDSA key sent by the remote host is
SHA256:
Please contact your system administrator.
Add correct host key in 
Offending ECDSA key in 
ECDSA host key for ec2-.compute.amazonaws.com has changed and you have requested strict checking.

 

 처음엔 같은 RSA키로 여러 aws를 접속하고 있어서 RSA키 문제인가 싶어 다른 서버에 접속 해 보았으나 문제가 없었다.

중간자 공격? 호스트 키 변경될 수 있다? 

구글링을 해 보니 경고 메시지는 Man in the Middle Attack 이라는 일명 '중간자 공격'에 대해 경고한다. 즉, 기존에 서버가 알고있던 정보를 찾아서 따라갔더니- 기존과는 전혀 다른 서버로 접속되었다는 것이다.

 

하지만 특정 ip만 ssh접속을 허용한 상태이기에 이 부분의 크게 신경쓰지않고 접속에만 신경쓰기로 했다.

해결 방법은 

ssh-keygen -R [ IP or DomainName]

나같은경우는 ssh-keygen -R ec2-.compute.amazonaws.com

와 같은 명령어로 초기화를 해주는 것이다.

(know_hosts에 접속 기록이 다 남아있는걸 보고 조금은 놀랐다.  )

 

만약 초기화 하지않고 경고를 무시하려면

 -o "StrictHostKeyChecking no" 와 같은 옵션을 사용하면 된다.

 

 

ps. 접속하여 서버 시간을 보니 초기화가 되어있었다. UTC 시간을 한국 시간대로 변경을 해 두었는데 초기화가 되었다.

오늘 어떤이유로 서버가 초기화가 된게 아닌가 생각이 드는데 실마리가 보인다면 알아봐야겠다.