[Есть ли способ] отключить SSH вход через пароль для каждого пользователя?
Нет, вообще.
Каковы (технические / проектные) ограничения в том, как работает SSH, что мешает этому?
В конструкции или спецификации протокола SSH есть примечание, которое препятствует этому.
Это ограничение конкретной реализации в демоне (или службе) SSH
Обычная sshd
программа на платформах Linux (и т. Д.) Была написана для чтения одного файла конфигурации, который применяется ко всем пользователям этого экземпляра программы.
Я полагаю, что было бы возможно написать демон SSH, который ищет дополнительный файл конфигурации в домашнем каталоге пользователя (например). Однако это не было сделано (вероятно, недостаточный спрос)
Есть что-нибудь примерно эквивалентное?
То, что вы можете сделать, это установить пароль для входа в систему пользователя на очень длинную и совершенно случайную строку.
Возможно, можно использовать оболочку для установки пароля, содержащего символы, которые нельзя ввести с помощью клиентов SSH, которые, как полагают, используются злоумышленниками. Или, по крайней мере, установить пароль, который намного дольше, чем любой, который они, вероятно, попытаются использовать обычными словарными подходами.