
Então eu conseguigitolitaconfigurar. Simples. Mas há um problema que estou tendo. Os URLs SSH seguem o formato git@host:repo
. estou acostumado aBitbucket/GitHubonde os URLs seguem o formato git@host:user/repo
. Existe uma maneira de obter o último formato usandogitolita?
Outra pergunta. Eu tenho meu ~/.ssh/config
arquivo configurado com a seguinte entrada:
Host <host>
User <user>
IdentityFile <path/to/public/key>
Não tenho nenhuma configuração especificando git
como usuário, mas consigo clonar git@host:repo
sem problemas. Obviamente, meu cliente ssh está usando minha chave pública para acessar o servidor e é por issogitolitaestá me permitindo clonar o repositório, mas como meu cliente ssh sabe usar minha chave pública que está configurada apenas para o <user>
usuário e não para o git
usuário?
Responder1
Restringir os usuários a comandos específicos é muito importante para o gitolite.
Se você lerman sshd
e procure o formato de arquivoauthorized_keys, você verá muitas opções que podem ser adicionadas à linha de chave pública, que restringem o usuário recebido de várias maneiras. Em particular, observe acommand=
opção, que significa "independentemente do que o usuário recebido está pedindo para fazer, execute este comando à força".Observe também que quando há muitas chaves públicas (isto é, linhas) no arquivoauthorized_keys, cada linha pode ter um conjunto diferente de opções e
command=
valores.Sem esta
command=
opção, o daemon ssh simplesmente fornecerá um shell, o que não é o que queremos para nossas chaves gitolite (embora possamos ter outras chaves que usamos para obter um shell).Esta é a espinha dorsal do que faz o gitolite funcionar; por favor certifique-se de entender isso.
Eles command=
estão usando o nome da sua chave pública como nome de usuário.
Portanto, todas as suas consultas ssh são feitas com:
- o usuário git
- uma chave pública cujo nome está registrado nos parâmetros da diretiva command= no arquivo
~git/.ssh/authorized_keys
.
Quanto a user/repos
, o mais próximo que você teria do Gitolite é emrepositórios selvagens e padrão de repositório.
repo CREATOR/a[0-9][0-9]