How can I create a user on CentOS 5.6, which cannot login with a password. I.E. they can only login and SSH using public key authentication.
useradd myuser -d /their-home-dir
Will that do it, without calling passwd?
Yes, that will do it but you should add some keys to
~/.ssh/authorized_keys of course.
If you want to enforce only pubkey auth, then you need to modify your /etc/ssh/sshd_config , and set