Host *
PubkeyAuthentication no
Put that at the bottom of the file, then turn back on for each host: Host site.com
PubkeyAuthentication yes Host *
PubkeyAuthentication no
Put that at the bottom of the file, then turn back on for each host: Host site.com
PubkeyAuthentication yes^password is sent to the server directly; passwords are generally weak and easy to brute force. Pubkeys without a passphrase _can_ be stolen from the local machine, but if an attacker has access to your local machine, you are probably SOL anyway.
edit: as several people have pointed out, this config option does not completely prevent pubkey auth being used (i.e. if configured or overriden on the command line). But if you only use that config by itself, it will disable pubkey authentication for every host.
Nothing about that config snippet precludes using private keys for known servers.
I value this and I universally disable password auth…on the server :)
E: as listed by others, IdentitiesOnly=yes seems like a better approach?
I explicitly list every server that I want to connect to in the config file, so I know exactly what is going to happen.