Eu editei o vim /etc/systemd/system/multi-user.target.wants/sshd.service para que ele inicie o sshd com o modo de depuração triplo e salve o log em / tmp:
ExecStart=/usr/sbin/sshd -D -ddd -E /log/sshd.log $OPTIONS
Descobri que o SSHD não pode ler arquivos .ssh de usuários. Outras investigações descobri que é devido ao SELinux. Infelizmente eu não tinha ideia de como consertar isso, então coloquei o SELinux no modo permissivo. Finalmente funcionou!