“Half” autorização ssh para um servidor com repositório git

2

Atualmente, comprei hospedagem na Web com acesso ssh.

Eu criei um repositório git nele e, se eu definir minha chave pública em ~/.ssh/authorized_keys file, eu tenho acesso a esse repositório, posso enviar / extrair dados, etc.

Esta solução permite o acesso de todos os usuários que tenham sua chave pública no arquivo authorized_keys .

Mas há uma coisa que eu quero evitar. Cada usuário pode acessar o servidor também e tem acesso a toda conta ssh.

É possível criar uma lista negra de chaves de usuários que não terão acesso ao ssh?

Eu vejo assim:

  • o usuário efetua login em um git - ok, permita que todos
  • usuário efetua login na conta ssh
  • O arquivo ~/.profile está conectado e é chamado de script personalizado:
    • verifique a chave pública do usuário
    • se a chave pública estiver em ~/.ssh/blacklist_keys call bash exit / logout

É possível de alguma forma?

    
por hsz 14.03.2011 / 15:23

2 respostas

2

Em vez de usar apenas o git simples, você deve procurar usar o Gitolite . O Gitolite é projetado para fazer esse tipo de autenticação baseada em SSH sem fornecer acesso SSH verdadeiro à máquina. Ele também traz consigo alguns extras, como ACLs strongs e permissões por tag e por ramo.

Você também pode usar Gitosis , que tem um uso muito mais amplo, mas o autor recomenda o uso de Gitolite para funcionalidades adicionais.

    
por 14.03.2011 / 15:43
0

Você pode desativar o login do shell para um usuário específico.

chsh -s /sbin/nologin {username}

Não mexa com arquivos de perfil (.profile, .bash_profile, .bashrc etc). Eles não são para restringir o login.

    
por 14.03.2011 / 16:38