ssh -p yyyy root@xxxxxxxxx
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Offending ECDSA key in /home/debian8/.ssh/known_hosts:28
remove with: ssh-keygen -f "/home/user/.ssh/known_hosts" -R [xxxx]:yyyy
ECDSA host key for [xxxxxxxx]:yyyy has changed and you have requested strict checking.
Host key verification failed.
경고를 따르십시오.
$ ssh-keygen -f "/home/user/.ssh/known_hosts" -R [xxxx]:yyyy
/home/user/.ssh/known_hosts is not a valid known_hosts file.
Not replacing existing known_hosts file because of errors
지금 어떤 명령을 실행해야 합니까?
답변1
키만 올바르지 않다고 판단하여 삭제를 선택하는 경우.
대체 솔루션 목록:
1.- 권장 명령을 실행합니다.
실행할 명령은 오류 메시지에 있습니다.
$ ssh-keygen -f "/home/user/.ssh/known_hosts" -R [xxxx]:yyyy
바꾸다
xxxx
SSH에 연결하는 데 사용되는 호스트 이름 또는 IPyyyy
포트 번호별(비표준인 경우)
그러면 실패한 키가 삭제되고 다시 연결되어 파일에서 새 키를 가져옵니다.
2.- 파일 라인 28 삭제
오류에는 실패한 줄이 다음과 같이 명시되어 있습니다.
Offending ECDSA key in /home/debian8/.ssh/known_hosts:28
텍스트 편집기나 다음 명령을 사용하여 줄 번호 28을 삭제할 수 있습니다.
sed -i '28d' "/home/user/.ssh/known_hosts"
그런 다음 다시 연결하여 올바른 키를 얻으세요.
3.- 파일을 이동합니다.
파일을 백업으로 이동(향후 참조/사용/추출 키용)
mv /home/user/.ssh/known_hosts /home/user/.ssh/known_hosts_backup
각각의 새 호스트에 접속할 때 ssh에서 파일을 다시 작성하도록 합니다.
4.- 전체 파일 삭제
다른 모든 방법이 실패하면 전체 파일을 삭제하십시오.
rm "/home/user/.ssh/known_hosts"
다시 연결되는 새로운 호스트마다 재구축됩니다.
답변2
"/home/user/.ssh/known_hosts는 유효한known_hosts 파일이 아닙니다."라는 오류 메시지가 문제를 보여줍니다. ssh-keygen
파일이 손상되어 구문 분석할 수 없습니다. 수동 편집이 잘못되었을 가능성이 높습니다.
최근 백업이 없는 경우 가장 쉬운 해결 방법은 손상된 백업을 known_hosts
한쪽으로 옮기고 ssh
새 백업이 생성되도록 하는 것입니다. 이전에 수락한 원격 호스트의 키를 다시 수락해야 합니다.
$ mv /home/user/.ssh/known_hosts /home/user/.ssh/known_hosts.old
답변3
호스트 이름 해싱을 사용하고 있습니까? 그렇지 않은 경우 텍스트 편집기를 사용하여 /home/user/.ssh/known_hosts
호스트 이름으로 시작하는 일치하는 줄을 삭제할 수 있습니다 . 다음과 같이 보일 것입니다:
hostname-or-ip ecdsa-sha2-nistp256 AAAA...
(다른 관심 있는 독자를 위해 ecdsa
- 비트도 있을 수 있지만 ssh-rsa
여기서는 ECDSA 키에 대해 명시적으로 불평합니다.)
답변4
SSH 경고는 원격 호스트 xxxxxxxxx의 공개 키가 변경되었음을 의미합니다. 이는 원격 호스트의 관리자가 공개 키를 변경했거나 침입자가 컴퓨터와 원격 호스트 사이에 중간자 공격을 수행했기 때문입니다.
전자에 해당한다고 확신하는 경우 .ssh/known_hosts
파일을 편집하고 원격 호스트 이름으로 시작하는 줄을 제거하여 캐시된 유효하지 않은 키를 삭제하세요.