ssh가 "원격 호스트 식별이 변경되었습니다"경고를 표시하지 않도록 강제


23

이와 같은 ssh 인쇄 경고 메시지를 피하는 방법이 있습니까?

"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r",
"@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @\r",
"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\r",

원격 호스트 ID가 변경되었지만 잘 알고 있으며이 경고를 제거하고 싶습니다.

답변:


16

네 가지 방법 :

질문에 답하지 않고 새 호스트 키로 시스템에 한 번만 연결하려면 다음 옵션을 사용하십시오.

ssh -q -o "StrictHostKeyChecking no" this.one.host.name

모든 시스템에 대한 경고를 영구적으로 제거하려면 ~/.ssh/config파일을 편집하여 다음 행을 추가하십시오.

Host *
StrictHostKeyChecking no

서버에 대한 모든 경고를 영구적으로 제거하려면 ~/.ssh/config파일을 편집 하고 다음 행을 추가하십시오.

Host this.one.hostname
StrictHostKeyChecking no  

이 한 서버에 대한이 변경에 대한 경고를 제거하려면에서 해당 서버의 호스트 키를 제거하십시오 ~/.ssh/known_hosts. 다음에 연결할 때 새 호스트 키가 추가됩니다.


두 번째 옵션에서 우리가 연결하는 서버 측에서 구성을 수행해야합니까?
coffeMug

아니요, $HOME/.ssh/config두 번째 및 세 번째 옵션 모두에서 중요한 것은 귀하의 것 입니다.
Jenny D

그래도 연결이 허용되지만 경고 메시지가 표시됩니다.
Michael Mior

24

이것을 ~ / .ssh / config에 추가하십시오.

Host 10.*                            # use your own pattern here, eg. *.example.com, example.*.com
  StrictHostKeyChecking   no         # turn off the HostKey check                                                               
  LogLevel                ERROR      # keep it from printing to STDOUT
  UserKnownHostsFile      /dev/null  # (optional) add the host automatically to a black hole, otherwise it would be added to ~/.ssh/known_hosts and show you a warning/message at the top of your session. You may want it added to known_hosts if your shell uses `ssh` autocompletion, such as fish. 

3
MOD UP-실제로 질문에 대답 한 유일한 사람-이것은 단지 일뿐 만 아니라 경고를 억제하는 유일한 대답이었습니다.
Brad

물고기 껍질 사용자는 UserKnownHostFile을 / dev / null에 놓으면 이전에 연결된 호스트에 대해 멋진 ssh 자동 완성 기능을 사용할 수 없습니다. 물고기 사용자와 모든 사람이 설정하지 않아야합니다.
Elijah Lynn

당신은 더 나은 만드는 ssh0스크립트 / 별칭 / 대한 기능을 ssh -o UserKnowHostsFile=/dev/null -o LogLevel=ERROR명시하는 대신에 이러한 옵션을 버리는 것을 사용 ~/.ssh/config. 당신은 그들에 대해 잊어 버린 다음 왜 그들이 수표를 원했을 때 수표가 작동하지 않았는지 궁금 할 것입니다.
Billy 삼촌

20

해당 호스트에 대한 라인을 제거 할 수 있습니다 ~/.ssh/known_host(모든 호스트에 엔트리로 라인이 있음).

대안은 다음을 사용하는 것입니다.

ssh -q -o "StrictHostKeyChecking no" ....

그냥 사용 -q하면 ssh조용히 실패 했을 것 입니다.


9

기본 $ HOME / .ssh / known_hosts에 호스트 키를 추가하지 않는 것이 때때로 바람직합니다.

사용 -o UserKnownHostsFile=/dev/null에 추가 -q-o StrictHostKeyChecking=no정리에서 known_hosts을 유지. 예를 들면 다음과 같습니다.

ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -q user@scripts.local

2

다른 제안은 호스트 키가 변경되는 이유를 식별하고이를 중지하도록하는 것입니다.

예를 들어, 컨테이너 또는 프로비저닝 시스템을 통해 호스트를 구축하는 경우 인스턴스마다 동일한 알려진 호스트 키를 일관되게 사용해야합니다.

이것이 항상 가능한 것은 아니라는 것을 잘 알고 있으며 호스트는 제어 범위 밖에서 관리 될 수 있지만 이러한 호스트 키 경고는 이유가 있으며 중요합니다. 예외 카운트를 줄이는 것은 좋은 일입니다.

그렇지 않으면, 해당 특정 호스트에 대해서만 귀하의 StrictHostKeyChecking No 에 투표 ~/.ssh/config 합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.