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 /etc/passwd
:
grep "dave" /etc/passwd
(replacing dave
with your username) you should see something like this:
dave:x:1000:1000::/home/dave:/bin/zsh
The last field (/bin/zsh
) is your shell. Let's search for it in /etc/shells
:
grep "/bin/zsh" /etc/shells
We should see something like this:
/bin/zsh
/usr/bin/zsh
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
(we use tee
because >
redirection doesn't work with sudo
)
/bin/zsh
) not being listed in/etc/shells
.