Publicação atualizada:
Usar o seguinte ForceCommand
em sshd_config
para o usuário (caso contrário normal) deve funcionar:
ForceCommand /usr/bin/git-shell -c "$SSH_ORIGINAL_COMMAND"
Este pequeno comando mágico foi originalmente encontrado aqui . Observe que o shell do usuário deve ser um shell com todos os recursos normais para que isso funcione corretamente.
Motivo da edição:
Acabei de perceber que minha resposta inicial não funcionou para mim ( tão embaraçosa ). Claro que desabilita o SFTP, mas parece impedir que o git também funcione corretamente!
postagem original:
Tente usar um ForceCommand e use o git-shell para o comando também. O ForceCommand desabilita o sftp, a menos que seja definido como interno-sftp. - muru
Apenas decidi citar o muru comentário para que outros possam se beneficiar dele. Funciona como um encanto.
Eu estava tendo exatamente o mesmo problema e quase perdi essa gema, pois ela estava nos comentários em vez de ser postada como resposta.