SSH: return with an error if the host key is wrong, rather than denying authentication
[?]
Feb 26, 2021, 10:54 AM
MU6P2JXG6RQEUOUV7HIZNA2734BGUCYMJYXAOLOO2CSGMNKVIH5QCDependencies
- [2]
TPEH2XNB1.0.0-alpha.28, with Tokio 1.0 - [3]
SZWBLWZ4Reading ~/.ssh/config - [4]
SXEYMYF7Fixing the bad changes in history (unfortunately, by rebooting). - [5]
UDHP4ZVBFixing SSH asynchronicity issues - [6]
CCLLB7OIUpgrading to Sanakirja 0.15 + version bump
Change contents
- replacement in pijul/src/remote/ssh.rs at line 94
let authenticated = self.auth_agent(&mut h, &mut key_path).await.unwrap_or(false)|| self.auth_pk(&mut h, &mut key_path).await|| self.auth_password(&mut h).await?;let authenticated = match self.auth_agent(&mut h, &mut key_path).await {Ok(true) => true,Ok(false) => {self.auth_pk(&mut h, &mut key_path).await || self.auth_password(&mut h).await?}Err(e) => return Err(e.into()),}; - replacement in pijul/src/remote/ssh.rs at line 129
) -> Result<bool, anyhow::Error> {) -> Result<bool, thrussh::Error> { - edit in pijul/src/remote/ssh.rs at line 157
(_, Err(thrussh::AgentAuthError::Send(e))) => {debug!("send error {:?}", e);return Err(thrussh::Error::SendError);} - replacement in pijul/src/remote/ssh.rs at line 317
error!("Key changed for {:?}", self.addr);writeln!(std::io::stderr(), "Key changed for {:?}", self.addr).unwrap_or(());