[ssh] ssh 원격 호스트 식별이 변경되었습니다

서버를 다시 설치했는데 다음 메시지가 나타납니다.

[user@hostname ~]$ ssh root@pong
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    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
6e:45:f9:a8:af:38:3d:a1:a5:c7:76:1d:02:f8:77:00.
Please contact your system administrator.
Add correct host key in /home/hostname /.ssh/known_hosts to get rid of this message.
Offending RSA key in /var/lib/sss/pubconf/known_hosts:4
RSA host key for pong has changed and you have requested strict checking.
Host key verification failed.

인터넷에서 찾은 다양한 솔루션을 시도했습니다. 내 known_hosts파일 (일반적으로 ~/.ssh/known_hosts)이에 /var/lib/sss/pubconf/known_hosts있습니다. 편집하려고했지만 한 상태로 유지됩니다. ipa-client를 설치 했으며 Fedora 19가 있습니다.이 경고를 어떻게 해결합니까?

지금까지 답변 된 모든 답변은 Freeipa가 설치되어 있지 않은 경우에만 작동합니다.

adrin의 아래 의견에서 freeipa에 대한 정답은 여기에 있습니다 .



답변

가장 간단한 해결책은 다음과 같습니다.

ssh-keygen -R <host>

예를 들어

ssh-keygen -R 192.168.3.10

에서 ssh-keygenman 페이지 :

  • -R hostnameknown_hosts 파일에서 호스트 이름에 속하는 모든 키를 제거합니다. 이 옵션은 해시 된 호스트를 삭제하는 데 유용합니다 (위의 -H 옵션 참조).

답변

사용하다

ssh-keygen -R [hostname]

IP 주소 / 호스트 이름의 예는 다음과 같습니다.

ssh-keygen -R 168.9.9.2

그러면 known_hosts에서 호스트의 문제가 업데이트됩니다. known_hosts의 경로를 -f 플래그와 함께 제공 할 수도 있습니다.


답변

Digital Ocean Ubuntu 이미지를 다시 만든 후에도 이와 동일한 오류가 발생했습니다. 서버 IP 대신 다음 명령을 사용했습니다.[IP_ADDRESS]

ssh-keygen -R [IP_ADDRESS]


답변

서버를 다시 설치하면 ID가 변경되고이 메시지가 표시됩니다. Ssh는 연결된 서버를 변경했는지 또는 모든 통신을 감지하기 위해 네트워크에 서버를 추가했는지 알 수있는 방법이 없으므로주의를 기울여야합니다.

관련 항목을 삭제하여 known_hosts에서 키를 제거하십시오.

sed '4d' -i /var/lib/sss/pubconf/known_hosts

4d계정에Offending RSA ...known_hosts:4


답변

슬레지 해머는 알려진 모든 호스트를 한 번에 제거하는 것입니다.

rm ~/.ssh/known_hosts

우리는 점프 박스에서 짧은 수명의 서버의 작은 서브넷을 사용하고 동일한 ssh 키를 공유하는 서버의 내부 IP 주소를 자주 사용하기 때문에 이에 반대합니다.


답변

문제는 이전에 원격 컴퓨터에 대한 SSH 연결을 수락했으며 마지막 연결 이후 원격 컴퓨터의 디지털 지문 또는 SHA256 해시 키가 변경되었다는 것입니다. 따라서 SSH를 다시 ​​시도하거나 github을 사용하여 SSH를 사용하는 코드를 가져 오면 오류가 발생합니다. 왜? 이전과 동일한 원격 컴퓨터 주소를 사용하고 있지만 원격 컴퓨터가 다른 지문으로 응답하고 있기 때문입니다. 따라서 누군가가 이전에 연결 한 컴퓨터를 스푸핑 할 수 있습니다. 이것은 보안 문제입니다.

원격 컴퓨터가 손상, 해킹, 스푸핑 등이 아니라고 100 % 확신하는 경우 원격 컴퓨터의 known_hosts 파일에서 항목을 삭제하기 만하면됩니다. 더 이상 연결시 SHA256 지문 ID가 일치하지 않으므로 문제가 해결됩니다.

Mac에서 여기 내가 한 일이 있습니다.

1) 다음과 같이 출력 라인을 찾으십시오 RSA host key for servername:port has changed and you have requested strict checking.. 서버 이름과 해당 로그 출력의 포트가 모두 필요합니다.

2) SSH 알려진 호스트 파일 백업 cp /Users/yourmacusername/.ssh/known_hosts /Users/yourmacusername/.ssh/known_hosts.bak

3) 컴퓨터의 오래된 지문이 저장된 줄을 찾아 삭제합니다. 1 단계의 서버 이름과 포트를 사용하여 특정 위반 원격 컴퓨터 지문을 검색 할 수 있습니다.nano /Users/yourmacusername/.ssh/known_hosts

4) CTRL-X를 종료하고 변경 사항을 저장하려면 Y를 선택하십시오.

이제 입력 ssh -p port servername하면 해당 컴퓨터에 처음 SSH를 시도했을 때 수행 한 원래 프롬프트가 표시됩니다. 그러면 원격 컴퓨터의 업데이트 된 SHA256 지문을 known_hosts 파일에 저장하는 옵션이 제공됩니다. 포트 22를 통해 SSH를 사용하는 경우 -p 인수가 필요하지 않습니다.

알려진 known_hosts 파일을 복원 할 수있는 문제 : cp /Users/yourmacusername/.ssh/known_hosts.bak /Users/yourmacusername/.ssh/known_hosts


답변

많은 사람들이 이미 말했듯이 ssh-keygen, 즉

ssh-keygen -R pong

또한 호스트 키 검사를 일시적으로 해제하는 것이 좋습니다.

ssh -oStrictHostKeyChecking=no root@pong