다음 메시지를 방지 할 수 있습니까? (REMOTE HOST IDENTIFICATION HAS CHANGED)
이 연결 구문 만 사용하는 경우
ssh xxx.xxx.xxx.xxx
경고 메시지의 예 :
ssh 10.19.11.1 CentOS release 5.8 (Final) Kernel 2.6.18-308.el5 on an i686 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ 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 the RSA host key has just been changed. The fingerprint for the RSA key sent by the remote host is dd:6f:32:8f:8f:8c:70:9c:95:f1:48:83:60:97:cc:ed. Please contact your system administrator. Add correct host key in /root/.ssh/known_hosts to get rid of this message. Offending key in /root/.ssh/known_hosts:7 RSA host key for 10.19.11.1 has changed and you have requested strict checkin. Host key verification failed.
이 메시지를받을 때마다 /root/.ssh/known_hosts를 정리합니다.
as
cp /dev/null /root/.ssh/known_hosts
또한 crontab에서 cp / dev / null /root/.ssh/known_hosts 명령을 설정하려고 생각하면
매일 24:00에 known_hosts 파일을 정리합니다 (이 솔루션은이 문제를 줄이지 만 해결하지는 못했습니다. )
이 솔루션은 그다지 좋은 솔루션이 아닙니다. 우리가 알려진 _hosts 파일을 evry day에 정리하더라도 사용자가 경고 메시지를받을 수 있기 때문입니다.
아마도 / etc / ssh에서 뭔가를 할 수 있습니다. / ssh_config 파일을 통해 SSH 호스트 키 확인을 방지 할 수 있습니까?
비고 :
다음 방법을 사용하고 싶지 않습니다. 이벤트 SSH 호스트 키 검사 (reflection / putty를 사용하기 때문에)
ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no [email protected]
이 구문 만
ssh xxx.xxx.xxx.xxx
연결 용
댓글
- 간단히 입력 : don '하지 마십시오. 실제로 그 경고를 읽었습니까? 이 경고에 대한 이유가 있습니다. 또한 MitM 공격 및 기타 나쁜 일의 피해로부터 사용자를 보호하기위한 것입니다.
답변
업데이트 : 요즘에는 TLS와 유사한 SSH 인증서 를 사용할 수 있습니다. 인증서. 그런 다음 개별 키가 아닌 인증서 를 신뢰하도록 known_hosts
항목을 추가 할 수 있습니다. 그러면이 메시지가 다시는 수신되지 않습니다.
@ 0xC0000022L “의 경고 에주의하십시오!
호스트 키가 변경된 것을 알고 경우 , known_hosts
파일에서 특정 항목을 제거 할 수 있습니다.
ssh-keygen -R xxx.xxx.xxx.xxx
전체를 덮어 쓰는 것보다 훨씬 낫습니다. hosts 파일 (> /root/.ssh/known_hosts
만으로 수행 가능).
ssh
를 사용하지 않으려는 경우 이 작업을 수행하는 유일한 다른 방법은 SSH 코드를 수정하고 다시 컴파일하는 것입니다. 정말 하지 마세요!
댓글
- 하지만 자동으로하고 싶습니다. 수동으로하고 싶지 않습니다.
- 수동으로하고 싶지 않습니다. ' g
known_hosts
항목), ' 자동으로 수행하지 않으려는 경우 (ssh
옵션). 그러면 어떻게 하시겠습니까? - @ l0b0 기능을 억제하는 명령 줄 옵션을 제공합니다. 가상 머신 환경 및 기타 매우 동적 인 구성 (특히 테스트 환경)과 같은 일부 환경에서는 이러한 호스트 키가 자주 변경되며 격리 된 네트워크에 있기 때문에 확인을 통해 얻을 수있는 보안이 거의 없습니다. 매번
ssh-keygen -R
를 수행해야하는 것은 성가신 일입니다. 대상 주소를 구문 분석하고 ssh에 옵션을 전달하기 전에 키를 미리 제거하는 셸 스크립트 인 ssh에 대한 셸을 작성할 수 있다고 생각하지만 이것은 과잉처럼 보입니다.
답변
1 단계 : 결함이있는 키 제거
ssh-keygen -R 192.168.1.1
2 단계 : 새 키 추가
ssh-keyscan 192.168.1.1 >> ~/.ssh/known_hosts
또는 상황에 따라
> ~/.ssh/known_hosts ssh-keyscan 192.168.1.1 192.168.1.2 ... >> ~/.ssh/known_hosts
댓글
- -1 경고없이 풋건을 제공했습니다.
- @ l0b0 공평합니다!
답변
일회용 가상 머신 등에 연결할 때 먼저 키를 저장하지 않는 것이 좋습니다.
ssh0
별칭 또는 다음 콘텐츠가 포함 된 함수 :
alias ssh0="ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o LogLevel=ERROR"
이렇게하면 ~/.known_hosts
파일에 쓰레기가 포함되어 있습니다. 다른 명령을 사용하기 때문에 심리적 “실제”ssh와 일부 로컬 위젯을 계측하는 데 사용되는 것 사이의 경계입니다.
또 다른 유용한 별칭은 다음과 같은 경우입니다.
alias sshy="ssh -o CheckHostIP=no"
“예 : IP를 자주 변경하는 장치에 연결 중입니다. ISP가 전원을 껐다 켤 때마다 다른 IP를 할당하는 홈 라우터입니다.
댓글
- 완벽한 답변입니다!