Eftersom man normalt inte tillåter lösenord via SSH utan kräver certifikat så finns det en begränsning i standardinstallationen i Ubuntu som gör det omöjligt att logga in om man har en krypterad hemkatalog. Detta är på grund av att authorized_keys ligger under /home/<användarnamn>/.ssh/ vilket ligger den krypterade hemkatalogen och är därför inte åtkomligt innan man har loggat in. Problemet är just att man inte är inloggad och därför är inte hemkatalogen dekrypterad när sshd behöver läsa filens innehåll för att avgöra om din privata nyckel tillhör den publika nyckeln.
Om man har detta problem borde likande rader i /var/log/auth.log finnas för varje misslyckat inloggningsförsök:
Jan 11 20:55:25 server su[28291]: pam_sm_authenticate: Called
Jan 11 20:55:25 server su[28291]: pam_sm_authenticate: username = [<användarnamn>]
Jan 11 20:55:25 server su[28292]: Passphrase file wrapped
Jan 11 20:55:27 server su[28292]: Error attempting to add filename encryption key to user session keyring; rc = [1]
Lösningen är som tur är väldigt enkel
Skapa först en ny katalog som du döper till /etc/ssh-public-keys/<användarnamn>/
sudo mkdir /etc/ssh-public-keys/johan
Flytta authorized_keys till /etc/ssh-public-keys/<användarnamn>/
sudo mv ~/.ssh/authorized_keys /etc/ssh-public-keys/johan/
Redigera /etc/ssh/sshd_config
sudo nano /etc/ssh/sshd_config
Ändra AuthorizedKeysFile till
AuthorizedKeysFile /etc/ssh-public-keys/%u/authorized_keys
Starta sedan om sshd för att förändringen skall ta
sudo service ssh restart
— Johan Ryberg