원격 OpenWrt 라우터에 SSH로 연결하는 경우 ["DynDNS를 통해"]
메시지를 받았습니다
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
알겠습니다. 이전 행을 삭제
~/.ssh/known_hosts
하고 새 행을 추가하겠습니다하지만 내 비밀번호가 승인되지 않습니다. (올바른 비밀번호를 복사하여 붙여넣었음에도 불구하고)
하지만 누군가가 원격 라우터를 재부팅하면 다음이 표시됩니다.
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
좋아, 다시 한 번 행을 삭제
~/.ssh/known_hosts
하고 새 행을 추가합니다. [이전 행? ? ],그 다음에! 로그인할 수 있어요!
왜?
dyndns 업데이트가 실패하여 잘못된 IP로 로그인을 시도했기 때문인가요? 그리고 공유기를 다시 시작하면 dyndns IP가 업데이트되어 IP가 맞고 로그인이 되겠죠? 이것이 "호스트 식별 실패"라고 나타나는 이유입니까?
이번이 세 번째인데... 무슨 일이 일어났는지 모르겠어요.
답변1
귀하의 문제는 dyndns로 인해 발생한다는 점에서 귀하의 이론은 기본적으로 정확합니다. 보다 정확하게는 동적 IP 주소로 인해 문제가 발생하지만 dyndns를 사용하면 작업이 더 쉬워지지만 완전히 원활하지는 않습니다.
라우터가 새로운 동적 IP 주소를 수신하면(재부팅되었거나 공급자가 어떤 이유로든 연결을 끊었기 때문에) [1단계, 4단계] 새 IP에 로그인해야 합니다. 라우터가 연결되면 dyndns 공급자에게 주소 변경을 알리는 메시지를 보냅니다. 이를 실행하면 ssh johnny8888.dyndns.example.com
SSH 클라이언트는 해당 IP 주소를 찾습니다 johnny8888.dyndns.example.com
.
DNS 정보는 캐시가 많이 저장되어 전파되는 데 시간이 걸립니다. 일반적인 dyndns 사용의 경우 지연 시간은 몇 분입니다. 따라서 IP 주소가 변경된 직후에 연결을 시도하면 현재 다른 컴퓨터에 속해 있는 이전 IP 주소[3단계]에 계속 연결될 수 있습니다. 컴퓨터가 SSH 서버를 실행 중인 경우 원격 호스트 ID 변경 경고가 표시됩니다.
라우터 섹션 아래에 CheckHostIP No
이를 ~/.ssh/config
. 그런 다음 ssh는 IP 주소와 관련된 키(동적 주소가 있기 때문에 쓸모 없음)를 확인하지 않고 호스트 이름과 연결된 키(변경되지 않음)만 확인합니다.
대부분의 경우아니요원격 호스트 ID 변경 경고를 받습니다. 다른 사람의 컴퓨터에 로그인을 시도했거나 과거에 로그인을 시도한 경우에만 얻을 수 있습니다. (IP 주소가 변경된 후 DNS 업데이트가 전파되기 전에 연결을 시도하면 실수로 시도할 수 있습니다.)
1많은 ISP는 로드 밸런싱을 용이하게 하기 때문에 매일 또는 며칠마다 모든 클라이언트의 연결을 끊습니다. 즉시 다시 연결할 수 있지만 다른 IP 주소를 얻을 수도 있습니다.
답변2
예, 귀하가 귀하의 질문에 답변했다고 믿습니다. 위의 Gilles의 답변을 참조하십시오.
그러나 가장 중요한 것은 dyndns 업데이트를 더 자주 실행하는 것이 좋습니다. 가능하다면 IP가 변경되는 즉시 dyndns update를 실행하는 것이 가장 좋지만 openwrt가 이 기능을 제공하는지 잘 모르겠습니다.