Необходимо установить привратника SSH. Это позволяет openssh разрешать многофакторную аутентификацию.
Вот большая ссылка: https://calomel.org/openssh.html
По существу Вы используете директиву ForceCommand для запущения скрипта, когда пользователь входит в систему. Тот сценарий затем предлагает пользователю пароль. Я в настоящее время ищу метод для проверки данного пароля против системного пароля, но я подхожу (понятно) пустой.
Если учетная запись пользователя хранится в каталоге LDAP, Вы могли бы попытаться связать с каталогом с помощью тех учетных данных, но проблема будет этим, выполнение программы будет работать как пользователь, не как корень. Я не знаю последствий безопасности записи скомпилированного кода и установки его SUID.
Надо надеяться, кто-то даст Вам лучший ответ.
но так как я ввел это очень, Вы в ультрабезопасном сайте? Поскольку это - действительно единственная причина этого. Нормальные открытые ключи с паролями должны быть более, чем достаточны для 99% случаев там.
Gitosis не сохраняется и был удержан от использования в пользу gitolite (страница промерзавца). Часть причины этого из-за чрезвычайно подверженной ошибкам установки и установки gitosis, как Вы узнали.
Addtionally Вы упоминаете Вас, нужен демон для git://протокол. Ни один gitosis или gitolite обеспечивают это или необходимы для него. Gitolite действительно дает возможность управления, какие репозитории доступны через git://протокол, но внешний мерзавец-демон должен уже быть установлен, настроен, и выполнение.
Я думаю, что Ваша оболочка перенаправляет stdin для sudo, не для Вашей команды мерзавца. Вместо этого судите рабочего мерзавца от корневой оболочки. (Надо надеяться), можно получить корневую оболочку с "sudo su -".