Força o usuário ssh a um shell diferente através da configuração

1

É possível na configuração openssh-server, forçar um subconjunto de usuários a usar um shell diferente daquele definido para eles em / etc / passwd?

Digamos que eu, por exemplo, queira confinar todos os usuários que se conectam de fora de um certo intervalo de IP para o git-shell?

    
por Martin Nielsen 25.10.2014 / 21:54

1 resposta

2

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.

    
por muru 25.10.2014 / 22:06