오늘 저는 SSH 및 SFTP 클라이언트를 통해 Centos 7 시스템에 연결했는데, 둘 다 서버 RSA 키 지문이 변경되었음을 나타냅니다.
의심스러운 활동에 대한 모든 로그를 확인했지만 특이한 점은 발견되지 않았습니다.
이 변화에 대한 논리적인 설명이 있습니까?
답변1
openssh 클라이언트는 사용자가 지정한 이름을 사용하여 Known_hosts 파일에 대해 서버를 인증합니다. 이름은 문자 또는 IP 주소일 수 있습니다.
전자의 경우 ssh_config의 호스트 항목과 일치하며, 호스트 항목에 HostName이 설정되어 있으면 Known_hosts 파일을 확인하는 데 사용됩니다. 일치하는 호스트 항목에 호스트 이름이 설정되어 있지 않으면 CLI에서 사용자가 제공한 문자를 Known_hosts 파일과 비교하여 확인합니다.
후자의 경우 IP 주소가 확인됩니다. 따라서 단일 호스트에는 사용자가 제공한 "문자열"과 각각 일치하는 여러 항목이 있을 수 있습니다. 이는 사용자가 ip, fqdn, ssh_config 파일의 호스트 항목 또는 dns 접두사를 통해 연결할 수 있기 때문에 발생합니다. 사용자가 동일한 시스템을 다른 방식으로 참조할 때 경고가 자주 나타납니다.
위의 경고는 호스트를 알 수 없음을 의미합니다. 이는 클라이언트가 이전에 이 호스트에 연결되지 않았음을 의미합니다.이름또는 클라이언트가 이전에 이 호스트에 연결한 적이 있습니다.이름그러나 호스트의 "호스트 키"가 캐시되지 않거나 캐시되어 캐시된 키가 삭제되었거나 캐시가 손상되거나 삭제되었습니다.
이전에 example.com을 통해 호스트에 연결하고 서버 호스트 키를 캐시한 경우 다음에 example.com을 통해 호스트에 연결할 때 서버 키가 캐시된 키와 다르면 클라이언트가 비명을 지릅니다.원격 호스트 ID가 변경되었습니다., 가능한중간 원숭이 공격.
openssh 서버는 rsa, dsa, ecdsa 및 ed25519의 네 가지 유형의 키를 사용합니다. 이는 클라이언트가 적합한 키를 모두 캐시해야 함을 의미합니다.
이 상황을 처리하려면 서버 키 지문 데이터베이스를 구축해야 합니다. ssh-keygen -lf ssh_host_rsa_key.pub >> $HOME/example.com_host_key.txt
각 키마다.