Как запретить пользователю git логиниться по ssh?
Используйте gitolite, он сделан именно для таких случаев.
Можно для этих пользователей создать группу, для этой группы описать в конфиге 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) будет её выполнять с нужными аргументами.

Если поискать, есть готовые решения. Хотя и написать-то не проблема.