Можно для этих пользователей создать группу, для этой группы описать в конфиге sshd описать блок:
Match Group gitusers
ForceCommand git_restricted
X11Forwarding no
AllowTcpForwarding no
AllowAgentForwarding no
PermitTunnel no
Где git_restricted, это скриптик на вашем любимом языке, который проанализирует команду, которую пытался запустить пользователь, и которая будет в переменной окружения SSH_ORIGINAL_COMMAND, и если это одна из нужных команд (git-receive-pack, git-upload-pack, git-upload-archive) будет её выполнять с нужными аргументами.
Если поискать, есть готовые решения. Хотя и написать-то не проблема.