호스트 키가 변경된 것을 알면 known_hosts의 정보를 쉽게 업데이트 할 수 있습니까?


38

호스트 운영 체제가 다시 설치되고 공개 키가 sshing으로 재생성 된 경우 새 키가 이전 키와 일치하지 않기 때문에 실패합니다.

ssh에게 호스트 키가 변경되었다는 것을 알고 있고 업데이트하고 싶다고 알리는 더 쉬운 방법이 있습니까? 텍스트 편집기 또는 sed와 같은 것을 사용하여 문제를 일으키는 줄을 제거하는 것이 약간 오류가 발생한다고 생각합니다.


이것은 수퍼 유저에 대한 질문을 복제합니다 . 더 자세한 정보를 참조하십시오.
Yitz

답변:


59

ssh-keygen -R hostnameknown_hosts 파일에서 호스트 이름을 제거하는 데 사용하십시오 . 다음에 연결할 때 새로운 호스트 키가 known_hosts 파일에 추가됩니다.


12
TARGET_HOST=[hostname or IP]

# Remove the old key(s) from known_hosts
ssh-keygen -R $TARGET_HOST

# Add the new key(s) to known_hosts (and also hash the hostname/address)
ssh-keyscan -H $TARGET_HOST >> ~/.ssh/known_hosts

다음에 연결할 때는 키가 이미 파일 에 있기 때문에 묻지 않고 연결 됩니다.Are you sure you want to continue connecting (yes/no)?known_hosts


1
~ / .ssh / config 의 StrictHostKeyChecking 참조
Jeff Schaller

1
나는 다른 변수 이름을 사용할 것입니다 .... 호스트는 자신의 호스트 이름을주는 일부 쉘에 있습니다. 그래서 변경하지 않는 것이 좋습니다. , thehost또는 왜 그렇지 않습니까? 또는 ALLCAPS 변수가 예약 된 내부 이름과 충돌 할 수 있습니다. 작은 이름은 사용하지 않아야합니다.)
Olivier Dulac

known_hosts의이 키 앞에는 | 1 |로 시작하는 것이 있습니다. 그 물건은이 방법을 통해 파일에 추가되지 않습니까, 아니면 잘못 되었습니까? ssh-keyscan이 리턴하는 것이 | 1 |로 시작하지 않기 때문에 차이점은 무엇입니까?
Daniel F

1
(@ DanielF +) 해시 형식을 사용 ssh하고 호스트 이름과 주소에 대한 별도의 항목이 있는 키를 수락 한 경우 충돌을 피하기 위해 ssh-keygen -R 각각 의 항목 을 사용해야 합니다
dave_thompson_085
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.