
내 파일을 일시적으로 무시할 수 있는 방법이 있나요 ~/.ssh/known_hosts
?
mbp:~ alexus$ ssh 10.52.11.171
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Please contact your system administrator.
Add correct host key in /Users/alexus/.ssh/known_hosts to get rid of this message.
Offending RSA key in /Users/alexus/.ssh/known_hosts:155
RSA host key for 10.52.11.171 has changed and you have requested strict checking.
Host key verification failed.
mbp:~ alexus$
메모:
.. 몇 가지 답변/댓글을 통해 제 질문이 약간 오해의 소지가 있다는 것을 깨달았습니다. 너무 짧습니다.예상되는 동작)이므로 정상입니다(내 경우에는).내가 "무시"를 보고 싶은 이유에 대한 타당한 이유가 있습니다.)
답변1
ssh -o StrictHostKeyChecking=no
일시적으로 확인을 해제하는 데 사용할 수 있습니다 known_hosts
. 그러나 나는 이것에 대해 조언하고 싶습니다. 호스트 키가 변경된 이유를 실제로 확인해야 합니다.
~/.ssh/config
또 다른 옵션은 문제의 호스트에 대한 특정 항목을 추가하는 것입니다 . 재부팅할 때마다 새 호스트 키를 생성하는 특정 호스트가 있고 하루에 여러 번 타당한 이유로 재부팅되는 경우 이는 유효한 접근 방식일 수 있습니다.
Host <your problematic host>
StrictHostKeyChecking no
답변2
POSIX 환경에서 알려진 호스트 파일을 완전히 무시하려면 GlobalKnownHostsFile
및 UserKnownHostsFile
옵션을 다음으로 설정하십시오 /dev/null
.
ssh -o GlobalKnownHostsFile=/dev/null -o UserKnownHostsFile=/dev/null user@host
옵션 을 설정하면 StrictHostKeyChecking=no
연결할 수 있지만 SSH는 허용됩니다.여전히 경고가 표시됩니다:
ssh -o StrictHostKeyChecking=no user@host
다른 사람들이 지적했듯이 근본적인 문제를 해결하는 것이 더 나을 것입니다. 당신은 고려할 수 있습니다SSH 인증서 인증예를 들어 호스트를 확인하기 위해.
답변3
서버를 다시 설치하여 ID가 변경된 경우 지정된 155행을 삭제하고 /Users/alexus/.ssh/known_hosts
계속 진행해야 합니다.
다른 개인 네트워크 간에 전환하는 경우 SSH 클라이언트도 호스트 이름에 따라 키를 저장하므로 대신 호스트 이름을 사용하여 연결해야 합니다. 다음과 같은 내용을 다음과 같이 추가하세요 /etc/hosts
.
10.52.11.171 server1
10.52.11.171 server2
그런 다음 ssh server1
서브넷 1에 연결될 때와 ssh server2
서브넷 2에 연결될 때 사용합니다. 이렇게 하면 두 서버 모두 서로 다른 호스트 키를 가질 수 있습니다.
답변4
-o StrictHostKeyChecking=no
호스트가 Known_hosts 파일에 아직 없는 경우에만 작동합니다.
VM 복제로 인해 호스트 키가 변경될 것으로 예상되는 경우 다음과 같은 종류의 호스트를 무시하도록 하는 것이 더 깔끔하다고 생각합니다(경고 없음).
# Handle possible SSH key changes
host_key=$(ssh-keyscan -t rsa ${host_ip})
grep "${host_key}" ~/.ssh/known_hosts >/dev/null || {
ssh-keygen -R ${host_ip}
echo ${host_key} >> ~/.ssh/known_hosts
}
# connect as normal way
ssh root@${host_ip} "hostname"