ssh 접속할 때, ECDSA 혹은 RSA host key 와 관련된 에러
1. 현상
- WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
- WARNING: POSSIBLE DNS SPOOFING DETECTED!
- Warning: the ECDSA host key for 'logiciel.kr' differs from the key for the IP address '192.168.0.100'
2. 원인
ssh 접속하면,
서버에서 받은 ECDSA key 혹은 RSA key 의 지문(fingerprint)을
~/.ssh/known_hosts
에 저장한다.
다음 번에 같은 서버에 ssh 접속을 시도하면,
~/.ssh/known_hosts
와
서버에서 새롭게 받은 지문(fingerprint) 을 대조하는데,
이것들이 일치하지 않는 것이다.
일반적으로는 서버를 다시 설치했거나 그와 유사한 경우에 발생한다.
3. 해결방법
3.1. 서버를 믿을 수 있는지 검토한다.
먼저 서버를 다시 설치했는지 확인한다.
2번째(WARNING: POSSIBLE DNS SPOOFING DETECTED!)라면, 정말로 DNS 가 변조되었을 가능성이 있으므로, /etc/hosts 파일과 nameserver 설정을 확인해야 한다.
nslookup 은 nameserver 를 표시하고, host 는 nameserver 를 지정할 수 있고, ping 은 ip 가 표시된다.
nameserver 가 127.0.0.53, 127.0.1.1 같은 것들이라면, 장치 혹은 연결에 설정되어 있는 DNS 정보를 사용하는 것이므로 진정한 nameserver 는 숨겨져 있는 것이다.
3.2. 해결방법
서버가 믿을 수 있다고 판단된다면,
다음과 같이 ~/.ssh/known_hosts
에 저장된
ECDSA key 혹은 RSA key 의 지문(fingerprint) 을 삭제한 후에 다시 접속한다.
ssh-keygen -f ~/.ssh/known_hosts -R "logiciel.kr"
만약 3번째(Warning: the ECDSA host key for 'logiciel.kr' differs from the key for the IP address '192.168.0.100') 라면, IP 에 대한 지문(fingerprint) 도 삭제한다.
ssh-keygen -f ~/.ssh/known_hosts -R "192.168.0.100"