태그 보관물: man-in-the-middle

man-in-the-middle

SSH에서 엄격한 RSA 키 검사를 제거하는 방법은 무엇입니까? 표시됩니다. $ ssh root @ host1

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

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

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

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

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

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



답변

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

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

sed -i 377d ~/.ssh/known_hosts

(D)는 경고에 콜론 이후 도시 한 바와 같이 라인 377 eletes :

/home/emerson/.ssh/known_hosts:377

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

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

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


답변

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

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

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

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

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

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

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

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


답변

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

ssh <server> -o StrictHostKeyChecking=no

답변

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

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

ssh -vvv user@host

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

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


답변

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

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

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


답변

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

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

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

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

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

  1. known_hosts [@ l377]에서 일시적으로 참조 된 ‘old’항목의 시작 부분에 #을 추가하도록 known_hosts를 편집하십시오.
  2. [ssh를 호스트에 연결], ‘자동으로’새 키를 추가하라는 메시지에 동의
  3. 그런 다음 known_hosts를 다시 편집하여 #

“known_hosts에 올바른 호스트 키 추가”/ 호스트 이름 당 여러 ssh 호스트 키에 대한 답변이 더 있습니까?


답변