가끔 가다가 잘 접속되던 서버가 아래와 같은 메세지를 띄우는 경우가 있다.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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/warren/.ssh/known_hosts to get rid of this message.
Offending key in /home/warren/.ssh/known_hosts:1
RSA host key for -생략(ip)- has changed and you have requested strict checking.
Host key verification failed.
참... 당황 스럽다...
욱긴건 다른 컴퓨터에서는 될때다...이러면 더 아리까리 해진다.
일단 해결법은 이렇다.
ssh-keygen -R [ IP or DomainName]
ex) ssh-keygen -R 110.110.110.110
그후에 다시 접속하면 이번엔 메시지가 바뀐다.
Are you sure you want to continue connecting (yes/no)?
대략 이런 메시지를 띄운다. 그럼 그냥 yes 하면 끝이다.
위에 상황을 예를 들면...
A host 가 있고 B server가 있다.
A는 항상 B 서버에 ssh접속하고 있었는데 B서버에 ssh나 os를 새로 설치 하는 작업을 했다.
그런후에 A는 똑같이 B에 접속을 한다. 이때 B에 IP는 똑같다면...
위와 같은 메시지가 뜬다!!
이렇게 되는 이유는 단순하다.
ssh 최초접속시에 A와 B에서 서로간에 인증 과정을 하는데.. B는 새로 설치되었으니 B는 상관없지만..
A는 예전B에 IP로 인증이 되어있는 상태에서 B로 로그인을 하면
로그인시에 예전에 IP로 인증했던 정보를 가지고 B로 로그인을 하려고 하지만 B는 인증정보가 없기때문에
위와 같은 현상이 나타난다.
만약 위에 명령어가 먹히지 않는다... 아직도 똑같다...
그러면 find / -name known_hosts 을 통해 해당파일을 찾아 지우면 된다.
보통 /root/.ssh/known_hosts 에 있다.
나니면 /home/username/.ssh/known_hosts
자신의 root면 root에 있는 것을 지워야 되고 일반 유저 이면 /home/username에 있는 걸 지워야겠죠?