Você pode usar um ForceCommand
junto com Match
:
Match Address 10.1.0.0/16
ForceCommand /usr/bin/git-shell
De man sshd_config
:
Match Introduces a conditional block. ...
The arguments to Match are one or more criteria-pattern pairs or
the single token All which matches all criteria. The available
criteria are User, Group, Host, LocalAddress, LocalPort, and
Address.
ForceCommand
Forces the execution of the command specified by ForceCommand,
ignoring any command supplied by the client and ~/.ssh/rc if
present. The command is invoked by using the user's login shell
with the -c option.
Assim, o comando especificado será executado usando o shell de login do usuário, que deve aceitar a opção -c
. A conexão é fechada quando o comando sai, então, para todos os efeitos práticos, esse comando é o shell deles.