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:?}")