A causa mais comum desse erro é simplesmente digitar sua senha (ou nome de usuário) errado. O mapa de teclas no console é muitas vezes diferente do X.
Verifique se você está digitando a senha correta digitando-a primeiro no campo de login, no qual você pode ver se ela está sendo escrita conforme o esperado.
Verifique se você está digitando seu nome de usuário exatamente como deveria (incluindo o caso), comparando-o com a saída de whoami executada em um terminal.
Outra coisa que causará exatamente a mesma mensagem de erro é se o seu login shell não estiver listado em /etc/shells . Descubra qual shell você está usando pesquisando seu nome de usuário em /etc/passwd :
grep "dave" /etc/passwd
(substituindo dave pelo seu nome de usuário), você verá algo assim:
dave:x:1000:1000::/home/dave:/bin/zsh
O último campo ( /bin/zsh ) é o seu shell. Vamos procurá-lo em /etc/shells :
grep "/bin/zsh" /etc/shells
Devemos ver algo assim:
/bin/zsh
/usr/bin/zsh
Mas se você não o fizer, é o problema. Tente reinstalar zsh (ou qualquer que seja o shell que esteja faltando em /etc/shells ) e, se isso não funcionar, adicione-o manualmente:
echo '/bin/zsh' | sudo tee /etc/shells
(usamos tee porque o redirecionamento > não funciona com sudo )