RSS

bzr+ssh: Criando usuários restritos para um servidor Bazaar

26 nov

Há um bom tempo eu venho pesquisando sobre formas de facilitar os métodos de trabalho em equipe com Bazaar aqui na empresa que eu trabalho. Em relação ao compartilhamento das árvores de trabalho, a solução é bem simples e usa apenas o comando “bzr serve” para uma pasta específica, mas esse modo é apenas para leitura (funciona para os comandos pull, merge e até update, esse último usado com checkouts leves em branches remotos). Para autenticar usuários a documentação do Bazaar sempre me sugere o uso de outras tecnologias populares, tais como FTP, SFTP ou WebDAV (dizem que WebDAV não é uma boa opção, ainda vou pesquisar mais a respeito). O problema se dá em relação ao bzr+ssh, que é mais ou menos usar o mesmo “bzr serve” com autenticação SSH, mas nunca encontrei nada detalhado na documentação do Bazaar.

Felizmente, encontrei nesse blog uma solução não muito prática mas bem eficiente:

  • Tenha em mãos uma par de chaves pública e privada para SSH (caso não tenha, talvez a documentação do Bazaar ajude)
  • Na configuração das chaves autorizadas (fica em ~/.ssh/authorized_keys), altere a linha de permissão da sua chave pública para isso:
    command="bzr serve --inet --directory=/home/bzr --allow-writes",no-port-forwarding,no-pty,no-agent-forwarding,no-X11-forwarding ssh-rsa AAAA[... resto da sua chave + comentário ...]
  • Altere o diretório /home/bzr para qualquer diretório de sua preferência, esse será o path relativo de todos os seus projetos versionados com Bazaar

Feito isso, o usuário poderá upar seus trabalhos usando o endereço “bzr+ssh://<usuario@servidor>/<nomedoprojeto>” ao invés de “sftp://<usuario@servidor>/home/bzr/<nomedoprojeto>”, mas lembre-se de que essa facilidade só vai funcionar através da autenticação pela chave SSH, não irá funcionar pela autenticação normal do servidor. Em outras palavras, você pode até bloquear a autenticação do servidor para que o usuário se autentique apenas pela chave SSH, basta alterar o seu /etc/shadow (caso use o método convencional de autenticação no Linux) e colocar um asterisco onde deveria ficar a chave criptografada com a senha do usuário. O usuário precisa de uma shell para executar o bzr serve via SSH, portanto se você setar o shell do usuário para /bin/false, a dica acima não vai funcionar, assim o método ideal para bloquear um usuário apenas para trabalhar com Bazaar é retirar a autenticação padrão dele, como foi comentado antes.

Anúncios
 
Deixe um comentário

Publicado por em 26 de novembro de 2010 em Bazaar, Referências, Web

 

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

 
%d blogueiros gostam disto: