How to configure sshd to required both ssh public key and user password also? yes, stupid, but required on my setup..
If you want 2 factor authentication, you can add yubikeys. They are little usb dongle that provides one-time-password. And the server-side for those is open-source if you don't want to use their authentication servers. And they are relatively cheap.
We use these here on our border servers to increase security.
Regards,