Isso não é possível sem algumas mudanças sérias de código no sudo e no sshd. O Sudo não sabe sobre os métodos de login, e o ssh não publica em outros programas nada que indique se uma chave pública, senha ou algum outro mecanismo foi usado para o login.
Como alguém disse, você pode usar a opção NOPASSWD em sudoers - isso se aplicaria a usuários especificados sempre, não apenas quando eles usam ssh com chaves privadas.
Se você realmente quiser, pode haver truques que você pode fazer com um programa suid que verifica o log sshd e bloqueia / edita o arquivo sudoers para permitir que esse usuário faça um sudo sem senha e uma tarefa periódica para revogar essa permissão .
Tudo o que disse, acho que esta é uma má ideia. Requerer uma senha para comandos privilegiados tem alguns benefícios legais que a chave privada SSH não possui. Notavelmente, permite que você tenha timeouts para a autenticação (a senha deve ser reinserida, não é verdade para sessões ssh), permite que você tenha mínimos de senha e rotação (diferentemente das chaves ssh, que têm uma senha fora do controle do servidor). p>