Since you can login via ssh, did you read your logs? Start by looking at /var/log/messages and /var/log/secure and see if there clues there. If you tail those files in separate ssh sessions while you attempt to login at the console you should be able to see what each attempt generates, if anything.