![Putty는 서버 호스트 공개 키를 어디서 얻나요?](https://rvso.com/image/1654744/Putty%EB%8A%94%20%EC%84%9C%EB%B2%84%20%ED%98%B8%EC%8A%A4%ED%8A%B8%20%EA%B3%B5%EA%B0%9C%20%ED%82%A4%EB%A5%BC%20%EC%96%B4%EB%94%94%EC%84%9C%20%EC%96%BB%EB%82%98%EC%9A%94%3F.png)
Debian 상자에 로그인하고 있는데 호스트 공개 키를 보여주는 보안 경고가 표시됩니다. PuTTY에서 보고한 전체 공개 키를 ~/.ssh/authorized_keys에 있는 공개 키와 비교해 보니 일치하지 않는 것으로 나타났습니다.
제가 MITM을 받았나요? 아니면 뭔가 잘못 이해하고 있는 건가요?
답변1
개인 키 /etc/ssh/ssh_host_${type}_key가 연결에서 어떤 역할을 하는지는 확실하지 않습니다. 공격자가 공격받는 서버에서 전송되는 공개 키가 무엇인지 확인하고 중간에 들어가서 정확히 동일한 공개 키를 스푸핑할 수 있을 때 서버에서 나에게 공개 키를 보내도록 하는 것이 어떻게 도움이 되는지 확실하지 않습니다.
분명히 말하면 서버는 실제로 공개 키를 사용자에게 다시 보내는 것이 아닙니다. 서버에는그 자체의귀하에게 보내는 완전히 별도의 키, 즉 "호스트 키"입니다. 호스트 키의 공개 부분과 비공개 부분은 모두 /etc/ssh에 저장됩니다.
서버는 그렇지 않습니다단지공개 키를 보냅니다. 그것은 또한서명클라이언트가 증거로 사용할 수 있는 해당 개인 키를 사용하여 생성됩니다. (서명되는 데이터는 각 연결마다 고유합니다.) 공격자는 동일한 공개 키를 보낼 수 있지만 서명을 생성할 수는 없습니다.
이는 SSL/TLS(HTTPS 등)에서 인증서가 작동하는 방식이기도 합니다.
귀하의 인증 키도 동일한 방식으로 서버에서 확인됩니다. 즉, PuTTY는 공개 키만 보내는 것이 아니라 개인 키를 사용하여 메시지에 서명하므로 다른 사람이 귀하처럼 로그인할 수 없습니다. Authorized_keys 파일을 살펴보세요.