A fun little fact I discovered about SSH: when you specify a private key to use, it checks ${key}.pub for hints about how to parse the private key, without warning. Under normal operations this is never a problem, but you need to replace a private key in-place, and don’t update the .pub file, authentication will fail: $ ls -la ssh.key ssh.key.pub $ ssh user@host echo ping user@host's password: ^C $ mv ssh.