diff --git a/async/src/known_hosts.rs b/async/src/known_hosts.rs
index 578e6383c65cca8b04dc361c0d3d0d9add60f9f0..06123315f6505699dc083982fa55e741ad9d2675 100644
--- a/async/src/known_hosts.rs
+++ b/async/src/known_hosts.rs
@@ -97,9 +97,13 @@ pub fn check_known_hosts_file(
             continue;
         }
 
-        let known_key = OpenSSHKey::from_openssh(&lk).map_err(|_| {
-            KnownHostsError::Other { msg: format!("Bad key format {}:{}", p.display(), line) }
-        })?;
+        let known_key = match OpenSSHKey::from_openssh(&lk) {
+            Ok(k) => k,
+            Err(e) => {
+                warn!("Unparsed key for {} on line {}:{}", host, p.display(), line);
+                continue;
+            }
+        };
 
         if pubk.algorithm() != known_key.algorithm() {
             debug!("Line {line}, Ignoring other-format existing key {known_key:?}")