[Is there a way to] disable SSH login via password on a per-user basis?
Não. Geralmente.
what is the (technical/design) limitation in the way SSH works that prevents it?
Há uma observação no design ou na especificação do protocolo SSH que impede isso.
É uma restrição específica da implementação no daemon SSH (ou serviço)
O programa usual sshd
nas plataformas Linux (etc) foi escrito para ler um único arquivo de configuração que se aplica a todos os usuários daquela instância do programa.
Eu acredito que seria possível escrever um daemon SSH que procura por um arquivo de configuração suplementar no diretório pessoal de um usuário (por exemplo). No entanto, isso não foi feito (demanda insuficiente, provavelmente)
Existe algo aproximadamente equivalente?
O que você pode fazer é definir a senha de login do usuário para uma string extremamente longa e completamente aleatória.
Pode ser possível usar o shell para definir uma senha que contenha caracteres que não podem ser inseridos usando clientes SSH da classificação que se acredita ser usada por invasores. Ou, pelo menos, para definir uma senha que seja muito mais longa do que qualquer outra que possa tentar usando as abordagens usuais baseadas em dicionário.