Many articles suggest that using public key authentication is more secure than using a password. References: http://www.linuxquestions.org/questions/linux-security-4/is-ssh-keys-authentication-more-secure-than-password-authentication-934866/ and http://www.spy-hill.net/~myers/help/PublicKey.html.
I beg to differ.
The problem with public key authentication is that it converts the authentication mode from "something you know" to "something you have in your home folder".
Consider the attack propagation. If a single machine is compromised, you are better off containing the attack within the same machine when using password based authentication rather than a public key - using which every machine is compromised.
My opinion is if scripts are not used in the server - that store the password, having password authentication and account lockout for bruteforce is much stronger than public key.
When scripts are present - 1. Ensure that scripts run as least privileged user as possible and use public key authentication for the scripts to access other machines. 2. It scripts require root privileges to run, still use the same unprivileged account and use a local executable with suid (accessible only to the script) to run the privileged command.