The most common cause of this error is simply typing your password (or username) wrong. The keymap in the console is often subtly different from the one in X.
Make sure you're typing the correct password by first typing it in the login field where you can see if it's being written as expected.
Check that you're typing your username exactly as it should be (including case), by comparing it to the output of
whoami run in a terminal.
Another thing that will cause this exact same error message is if your login shell is not listed in
/etc/shells. Find which shell you're using by searching for your username in
grep "dave" /etc/passwd
dave with your username) you should see something like this:
The last field (
/bin/zsh) is your shell. Let's search for it in
grep "/bin/zsh" /etc/shells
We should see something like this:
But if you don't, that's what the problem is. Try re-installing
zsh (or whatever shell is missing from
/etc/shells), and if that doesn't work, add it manually:
echo `/bin/zsh` | sudo tee /etc/shells
> redirection doesn't work with