Você não pode (apenas com a chave pública). O usuário pode alterar ou remover a senha da chave privada sem afetar o servidor.
Existe uma pergunta semelhante: Como para saber se uma chave SSH pública tem uma frase secreta
Se você estiver implementando a autenticação de dois fatores, talvez considere o PAM ou um script personalizado. Fazer funcionar com alguns clientes SFTP pode ser um pouco difícil.