Se o seu diretório home estiver criptografado, o daemon ssh não poderá acessá-lo para verificar se sua chave privada corresponde à sua pública. Sua pasta .ssh é criptografada depois de tudo.
Uma solução para isso pode ser ter sua pasta .ssh com suas authorized_keys em texto sem formatação em seu diretório inicial não criptografado.
Mas se a sua técnica de criptografia usa sua senha como chave para descriptografar tudo, você ainda terá que digitá-la para obter tudo descriptografado.
Portanto, um login verdadeiro sem senha não funcionará aqui. (a menos que você queira armazenar sua senha em algum lugar em texto puro para ser automaticamente alimentado ao processo de descriptografia, mas isso é ainda mais inseguro do que criptografia).
Qual técnica você está usando para criptografar seu diretório pessoal?
Atualização:
O Ubuntu usa o ecryptfs para montar uma partição criptografada no tempo de login (assim, quando você fornece sua senha)
Para fazer o ssh encontrar sua pasta .ssh novamente, você pode fazer isso:
# copy your .ssh folder
mkdir /tmp/mine
chmod 700 /tmp/mine
cp -r .ssh /tmp/mine # if you are on a shared system you could even protect this dir a buit more
cd /tmp/mine
# unmount your encrypted home drive
/sbin/umount.ecryptfs_private
# copy your ssh folder to the place ssh will actually look for
cp -r .ssh ~
# be sure to remove it again from /tmp
rm /tmp/mine/.ssh -rf
Agora você deve conseguir fazer o login novamente, mas não terá sua pasta pessoal descriptografada automaticamente. Para montá-lo sem criptografia, você terá que inserir isso em cada login:
/sbin/mount.ecryptfs_private
O qual solicitará sua senha de login novamente.
Mais informações sobre isso podem ser encontradas aqui:
link