Это возможно, но в kludgish и ограниченном виде пути. Сначала Вы только позволяете аутентификацию с открытым ключом. Затем в /etc/ssh/sshd_config
добавьте a ForceCommand
это выполняет сценарий, который проверит пароль.
Сценарий повредит SFTP, если Вы не проверите, что команда является sftp, и позвольте его через без пароля.
Я никогда не пробовал это так, кто-то может видеть больше проблем.
Скорее всего, некоторые модули, включенные в php, вызывают ваши сбои. Вам нужно будет выполнить некоторую отладку, чтобы выяснить, что может быть причиной этого. Вот хорошее место для начала:
Включите файлы ядра: http://aplawrence.com/Linux/limit_core_files.html
Прочтите дамп ядра с помощью GDB: https://stackoverflow.com/questions/5115613/core-dump-file-analysis
Это даст вам общее представление о том, что может быть причиной этого. Возможно, вам потребуется обновить / понизить версию любых установленных вами модулей PHP.