Suponho que você esteja falando sobre Linux e OpenSSH. Por favor, informe se este não é o caso.
Eu entendo que o git-server não é acessado diretamente da internet. Eu não acho que você pode fazer o que você está propondo automaticamente apenas usando o SSH.
Vamos supor que o gate esteja no 2.2.2.2 (IP público) e o git-server esteja no 10.10.10.10 (RFC1918)
Dependendo do que exatamente você está tentando alcançar e quais são as restrições, você pode:
1) faça o usuário se conectar ao git-server encaminhando uma porta primeiro:
ssh -N -L2222:10.10.10.10:22 [email protected]
e, em seguida, eles poderiam fazer login como:
ssh -p2222 git@localhost
2) no portão, você poderia encaminhar conexões feitas para 2.2.2.2:2222 a 10.10.10.10:22 para que seu usuário faça login como: ssh -p2222 [email protected]
Isso exigiria alguns comandos executados no gate:
# enable forwarding
echo -n 1 > /proc/sys/net/ipv4/ip_forward
# DNAT packets destined for 2.2.2.2:2222 to 10.10.10.10:22
iptables -A PREROUTING -d 2.2.2.2 -p tcp --dport 2222 -j DNAT --to-destination 10.10.10.10:22
# allow responses from 10.10.10.10 to get through
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
# allow forwarding connections to 10.10.10.10:22
iptables -A FORWARD -p tcp --dport 22 -d 10.10.10.10 -j ACCEPT
Não há nada específico para fazer no git-server.