O Git inclui um comando git-shell
adequado para uso como um shell de login somente do Git. Aceita exatamente os seguintes comandos:
git receive-pack
git upload-pack
git upload-archive
git-receive-pack
git-upload-pack
git-upload-archive
cvs server (used for emulating a CVS server, and not required for the Git protocol)
Esses são os únicos comandos que você precisa permitir. Todas as versões do Git que eu tenho acesso usam apenas as versões com hífen.
git-shell
em si pode ser bom o suficiente para o que você quer fazer também.
Você pode verificar o que o Git está executando para qualquer comando específico, configurando GIT_SSH
para um shim que ecoa os argumentos. Faça um script ssh.sh
:
#!/bin/bash
echo "$@" >&2
Em seguida, execute:
GIT_SSH="./ssh.sh" git push
e você verá o comando remoto que tentou executar.