Cambie esta línea en su archivo sshd_config:
AuthorizedKeysFile /etc/ssh/%u/authorized_keys
Y luego mueva su archivo de claves_autorizadas a /etc/ssh/your-username/authorized_keys
Esta publicación documenta otra forma de resolver esto.
Esta solución se inspiró en esta publicación. En mi humilde opinión, es mucho mejor que modificar su /etc/ssh/sshd_config ya que no requiere acceso de root en absoluto.
# Make your public key accessible
mkdir -m 700 /home/.ecryptfs/$USER/.ssh
echo $YOUR_PUBLIC_KEY > /home/.ecryptfs/$USER/.ssh/authorized_keys
ln -s /home/.ecryptfs/$USER/.ssh/authorized_keys ~/.ssh/authorized_keys
ecryptfs-umount-private
chmod 700 $HOME
mkdir -m 700 ~/.ssh
ln -s /home/.ecryptfs/$USER/.ssh/authorized_keys ~/.ssh/authorized_keys
# Make it auto-mount with first login.
# Note: it can cause problems with automated login.
echo /usr/bin/ecryptfs-mount-private > ~/.profile
echo cd >> ~/.profile
echo source .profile >> ~/.profile
ecryptfs-mount-private
Acabo de pasar un tiempo jugando con esto, y la respuesta es que es básicamente imposible. Es es es posible configurar inicios de sesión autenticados con clave pública sin contraseña a través de ssh, por lo que no tiene que escribir su contraseña para iniciar sesión , pero eso no te lleva a ninguna parte, porque tu directorio de inicio aún está encriptado.
El simple hecho es que su directorio de inicio cifrado está cifrado con una contraseña*, por lo que la única forma de descifrarlo es con esa contraseña.
Y si está pensando que, en teoría, debería ser posible usar su clave ssh para descifrar la frase de contraseña de montaje al iniciar sesión, eso no funcionará porque su clave privada nunca se envía al servidor.
Entonces, básicamente, si desea encriptación, debe usar contraseñas. Los directorios de inicio cifrados son incompatibles con los inicios de sesión con huellas dactilares por la misma razón.
*Sé que es más complicado que una sola contraseña, pero hagámoslo simple por ahora.