it-swarm-ko.tech

SSH에서 엄격한 RSA 키 검사를 제거하는 방법은 무엇입니까?

Linux 서버에 연결할 때마다 SSH 호스트 키를 변경 한 메시지가 표시됩니다.

$ ssh root @ Host1 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@ @ 경고 : 원격 호스트 ID가 변경되었습니다! @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@ IT IT IS 누군가가 할 수있는 가능성 IS 뭔가 불쾌한 일을하고 있습니다! 중간 공격) RSA 호스트 키가 방금 변경되었을 수도 있습니다. 원격 호스트가 보낸 RSA 키의 지문은 93 : a2 : 1b : 1c : 5f : 3e : 68 : 47 : bf : 79 : 56 : 52 : f0 : ec : 03 : 6b 시스템 관리자에게 문의하십시오 ./home/emerson/.ssh/known_hosts에 올바른 호스트 키를 추가하여이 메시지를 제거하십시오. .ssh/known_hosts : 377

Host1의 RSA 호스트 키가 변경되었으며 엄격한 검사를 요청했습니다. 호스트 키 확인에 실패했습니다.

몇 초 동안 로그인 상태를 유지 한 다음 연결을 닫습니다.

Host1 : ~/.ssh # 원격 호스트에서 읽습니다. host1 : 피어에 의한 연결 재설정 Host1에 대한 연결이 닫혔습니다.

누구나 무슨 일이 일어나고 있으며이 문제를 해결하기 위해 무엇을 할 수 있는지 알고 있습니까?

45
setatakahashi

일부 사람들이 권장하는 것으로 알려진 known_hosts 파일 전체를 삭제하지 마십시오. 이로 인해 경고 지점이 완전히 무효화됩니다. 중간 공격에 걸린 사람이 발생했을 수 있음을 경고하는 보안 기능입니다.

변경 사항이 있다고 생각하는 이유를 식별하는 것이 좋습니다. 보안 업그레이드로 인해 SSH 업그레이드로 암호화 키가 변경되었을 가능성이 큽니다. 그런 다음 known_hosts 파일에서 해당 특정 행을 제거 할 수 있습니다.

sed -i 377d ~/.ssh/known_hosts

d는 경고에서 콜론 뒤에 표시된대로 377 행을 삭제합니다.

/home/emerson/.ssh/known_hosts:377

또는 다음을 수행하여 관련 키를 제거 할 수 있습니다

ssh-keygen -R 127.0.0.1 (obviously replace with the server's IP)

전체 키를 제거하지 말고 특정 키를 제거하기 전에 실제로 연결하려는 시스템인지 확인하십시오.

71
Adam Gibbins

여기에있는 답변 중 일부는 OP의 질문에서 권장되는 행동 과정을 다루고 있지만 질문에 완전히 대답하지는 않습니다.

"SSH에서 엄격한 RSA 키 검사를 제거하는 방법과 문제는 무엇입니까?"

여기에서 문제는 다른 사람들의 조언에 따라 서버 재설치로 인한 호스트 변경 (대부분의 일반적인 시나리오)입니다. 그리고 권장 솔루션은 실제로 인라인 sed가있는 .ssh/authorized_keys 파일에서 문제가되는 키를 제거하는 것입니다.

그러나 나는 질문의 특정 부분에 대한 답변을 보지 못했다. "SSH에서 엄격한 RSA 키 검사를 제거하는 방법".

Ssh 구성 파일에서 일반적으로 ~/.ssh/config에 저장된 StrictHostKey 검사를 제거 할 수 있습니다.

호스트 블록의 예는 다음과 같습니다.

Host 101
  HostName yourip|hostname
  User youruserid
  IdentityFile /path/to/keyfile
  Port 22
  StrictHostKeyChecking no

구체적으로 추가 된 행은 마지막 행인 StrictHostKeyChecking no입니다. 특정 시나리오에 따라이 기능은 전용 서버에서 여러 개의 가상화 된 컨테이너를 몇 개의 IP로 실행하거나 동일한 IP에서 다른 인스턴스를 중지 및 시작하는 등의 경우 유용 할 수 있습니다.

27
Joel G Mathew

단일 서버에 대해서만 필요한 경우 StrictHostKeyChecking을 제거하는 또 다른 방법 :

ssh <server> -o StrictHostKeyChecking=no
11
Greg Dougherty

우선,이 기계는 당신의 기계입니까? 의도적으로 호스트 키를 변경 했습니까? 그렇지 않다면 무언가가 그 데이터를 변경했다는 것이 매우 걱정됩니다.

둘째, ssh 디버깅을 켜십시오.

ssh -vvv [email protected]

단서를 위해 연결하려는 서버에서/var/log/secure 및/var/log/messages를 찾아보십시오. sshd는 좋은 오류 메시지를 제공합니다.

셋째,이 기계는 인터넷에 연결되어 있습니까? 정말로 루트 로그인을 허용해야합니까?

5
Dave Cheney

'호스트'(광범위하게 정의되었으므로 다시 설치/멀티 부팅에서 이전에 연결 한 IP 주소를 가진 완전히 다른 컴퓨터에 이르기까지 모든 것이 될 수 있음)가 ssh 클라이언트에 변경된 것처럼 보이면 오류.

엄격한 검사를 해제 할 필요가 없으며 저장된 키의 도매 삭제도 감지 할 수 없습니다.

특정 호스트 이름 또는 IP 주소에 대해 known_hosts에 두 개의 다른 키를 나열하는 것이 가능합니다. 현재 known_hosts에 저장된 '이전'키가 필요한지 여부에 따라 두 가지 대안을 제공합니다.

OP에 대해 알려진 호스트의 l377에서 참조하는 특정 키를 삭제하거나 둘 다 유지하십시오.

Known_hosts에서 키를 삭제하지 않고 두 가지를 모두 유지하는 가장 간단한 방법은

  1. Known_hosts [@ l377]에서 일시적으로 참조 된 'old'항목의 시작 부분에 #을 추가하도록 known_hosts를 편집하십시오.
  2. [ssh to the host]를 연결하고 새 키를 '자동으로'추가하라는 메시지에 동의합니다.
  3. 그런 다음 known_hosts를 다시 편집하여 #

"known_hosts에 올바른 호스트 키 추가"/ 호스트 이름 당 여러 ssh 호스트 키 추가?

3
Mark

새로운 NIC, 새 IP, 서버 소프트웨어 변경 등과 같은 사항이 변경되었으므로이 문제가 발생합니다. 보안에 중점을 둔 기사는 SSH 호스트 키 보호 입니다.

$HOME/.ssh/known_hosts 파일을 편집하여 서버에서 키 (SFTP 등을 사용하여)를 제거하고 다음 연결시 새 키를 수락하십시오.

StrictHostKeyChecking 설정으로 인해 연결이 끊어 질 수 있습니다. 비슷한 문제에 대해서는 이 스레드 를 참조하십시오.

3
user1797