![gitolite para permitir usuários já presentes no arquivoauthorized_keys](https://rvso.com/image/668787/gitolite%20para%20permitir%20usu%C3%A1rios%20j%C3%A1%20presentes%20no%20arquivoauthorized_keys.png)
Estou usando o gitolite para restringir a permissão em um repositório e tem funcionado bem até agora, até que tentei clonar e enviar push com um usuário cuja chave pública já foi adicionada emauthorized_keys, não via gitolite. Acho que o problema é que estou usando a chave que dá acesso ao servidor. Quando tento clonar server:reponame, recebo um erro dizendo que o repositório não existe e quando clone de repositories/reponame e tento fazer push, recebo os seguintes erros:
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 370 bytes | 0 bytes/s, done.
Total 3 (delta 2), reused 0 (delta 0)
remote: Empty compile time value given to use lib at hooks/update line 6
remote: Use of uninitialized value in require at hooks/update line 7.
remote: Can't locate Gitolite/Hooks/Update.pm in @INC (@INC contains: /Library/Perl/Updates/5.10.0 /System/Library/Perl/5.10.0/darwin-thread-multi-2level /System/Library/Perl/5.10.0 /Library/Perl/5.10.0/darwin-thread-multi-2level /Library/Perl/5.10.0 /Network/Library/Perl/5.10.0/darwin-thread-multi-2level /Network/Library/Perl/5.10.0 /Network/Library/Perl /System/Library/Perl/Extras/5.10.0/darwin-thread-multi-2level /System/Library/Perl/Extras/5.10.0 .) at hooks/update line 7.
remote: BEGIN failed--compilation aborted at hooks/update line 7.
remote: error: hook declined to update refs/heads/master
Existe uma maneira de dar aos usuários que já possuem acesso ao servidor permissão para os repositórios gitolite? Eu sei que poderia usar outra chave para o usuário e adicioná-la ao keydir do gitolite, mas seria muito mais natural que esses usuários tivessem acesso aos repositórios do gitolite também.
Responder1
versão tl; dr: use um arquivo-chave separado para gitolite.
Antes tarde do que nunca.
basta adicionar o arquivo de chave já existente ao diretório gitolite/keys, git add, git commit, git push. gitolite irá gerar uma mensagem como
remote: WARNING: keydir/keyfile_which_was_added.pub duplicates a non-gitolite key, sshd will ignore it
e o /home/git/.ssh/authorized_keys
detém duas vezes a chave, uma já existente e outra na
# gitolite start
e
# gitolite end
seção.
Tentei mover a chave existente (antiga) após a # gitolite
seção, mas meu login ssh exibe apenas a mensagem gitolite e sai.
solução seráusando uma chave pública separada para gilolite.