Estamos usando nosso próprio repositório GIT e conseguimos isso com vários registros em authorized_keys. O ponto chave que está confundindo você é que a conta git não tem acesso direto a um terminal, mas está usando o programa git. Internamente, cada chave é reconhecida como usuário específico, que possui opções de acesso específicas, e o próprio git está gerenciando isso. É configurável.