"RSA 호스트 키를 영구적으로 추가"한다는 것은 무엇을 의미합니까?

"RSA 호스트 키를 영구적으로 추가"한다는 것은 무엇을 의미합니까?

저는 Unix와 그 주변 환경, 특히 SSH와 인증에 대해 매우 익숙하지 않습니다.

나는 ID를 생성하고(공개/개인 키 쌍 생성) 이를 ssh-agent에 넣은 다음 공개 키를 원격 호스트에 복사하여 비밀번호를 입력하지 않고도 원격 호스트에 SSH로 연결할 수 있다는 것을 알고 있습니다. 내가 틀렸다면 정정하되 로컬 시스템에 등록된 모든 ID를 나열하려면 실행할 수 있습니다 ssh-add -l.

SSH를 통해 연결하려고 하면(구체적으로 비밀번호를 반복해서 입력할 필요가 없도록 SSH를 통해 bitbucket에 연결하려고 합니다) 다음과 같은 경고가 표시됩니다.

Warning: Permanently added the RSA host key for IP address 'xxx.xxx.xxx.xxx' to the list of known hosts.

포기하고 "RSA 호스트 키를 영구적으로 추가"라고 부르는 작업을 수행한 후 실행하여 ssh-add -l이전에 생성한 공개/개인 키 쌍이 등록되지 않고 대신 새로운 ID가 생성되는 것으로 나타났습니다. 헷갈려서 내용을 확인해 보았지만 ~/.ssh/앞서 생성한 파일 외에 다른 공개/개인 키 파일은 보이지 않았습니다.

실행하여 ID를 제거하려고 시도했지만 ssh-add -D소용이 없었습니다. 을 실행할 때 여전히 표시됩니다 ssh-add -l.

내 질문은 다음과 같습니다

  • 무슨 일이야? Unix에서 로컬 비밀번호를 묻는 메시지가 표시될 때 방금 새 ID를 만들었나요?
  • 나열된 ID에 대한 공개 및 개인 키는 어디에서 찾을 수 있습니까 ssh-add -l? 내 신원을 삭제할 수 없는 이유는 무엇입니까 ssh-add -D?
  • Bitbucket에 성공적으로 연결했는데 계정 관리자에 공개 키(이전에 생성한 키 외에)가 추가되지 않은 이유는 무엇입니까 ssh-keygen?
  • 이것이 파일과 관련이 있을 수 있다는 것을 알았지 ~/.ssh/known_hosts만 해당 파일의 목적이 무엇인지, 전체 SSH 비즈니스와 어떤 관련이 있는지 모르겠습니다.

SSH 작동 방식, Unix의 공개/개인 키 및 ID 관리 방식, Known_hosts 파일의 작동 방식에 대한 설명을 인터넷에서 찾아봤지만 아무것도 찾을 수 없습니다. 외부 기사에 대한 설명이나 참조는 매우 감사하겠습니다!

추가 배경 정보: 이전에는 새로운 공개/개인 키 쌍을 생성하여 ssh-agent에 추가했습니다(그리고 Bitbucket의 지침에 따라 공개 키를 Bitbucket에 복사했습니다). 그러다가 컴퓨터를 껐다가 다음날 다시 켰습니다. 이 작업을 시도하면 git fetch로컬 사용자 비밀번호를 입력하라는 메시지가 표시되고 위의 경고가 표시됩니다. 그러자 내 질문과 혼란이 사라졌습니다.

답변1

키워드는호스트 키. 호스트에 처음 연결하면 해당 호스트의 공개 키 지문이 표시됩니다. 서버 자체에는 사용자와 마찬가지로 키 쌍이 있습니다.

MITM을 받지 않도록 자신이 알고 있는 서버 지문을 사용하여 지문을 확인할 수 있다는 아이디어입니다.

호스트 키를 수락하면 Known_hosts 파일에 저장되며 클라이언트가 모든 후속 연결을 인증하는 데 사용됩니다.

호스트 키가 예기치 않게 변경되면 클라이언트는 뭔가 잘못되었을 수 있으므로 확인해야 함을 알리는 귀찮은 오류 메시지를 발견하고 표시합니다.

관련 정보