If your home directory is encrypted, the ssh daemon can't get in it to check if your private key matches your public one. Your .ssh folder is encrypted after all.
A workaround for this might be to have your .ssh folder with your authorized_keys in plaintext in your unencrypted home directory.
But if your encryption techinque uses your password as a key to decrypt everything you will still have to type it in to get everything decrypted.
So a true passwordless login will not work here. (unless you want to store your password somewhere in cleartext to be automatically fed to the decryption process, but this is even more unsecure then not encrypting at all.)
What technique are you using to encrypt your home directory?
ubuntu uses ecryptfs to mount an encrypted partition on login time (so when you supply your password)
To make ssh find your .ssh folder again you can do this:
# copy your .ssh folder
cp -r .ssh /tmp
# unmount your encrypted home drive
# copy your ssh folder to the place ssh will actually look for
cp -r .ssh /home/username
# be sure to remove it again from /tmp
rm .ssh -rf
You should now be able to login again, but you will not have your home folder unencrypted automatically. To mount it unencrypted you will have to enter this on every login:
Which will ask you for your login password again.
More information on this can be found here: