Criando uma chave ssh apenas para cliques / cliques mercuriais

3

Eu quero fazer uma chave ssh (sem senha) que eu possa distribuir aos usuários remotos para que eles possam fazer um hg pull ou hg clone dos meus repositórios. Cheguei a fazer uma chave ssh que usa apenas o comando / usr / bin / hg, mas isso não funciona quando se usa o comando clone ou pull, porque a string de comando não corresponde ao que o comando remoto chama de mercurial usa internamente.

É possível obter os comandos que o mercurial executa no host remoto quando você faz um:

hg clone ssh://user@host//path-to-repo
hg pull ssh://user@host//path-to-repo

E posso criar de forma confiável algumas strings de comando que cubram todas as minhas bases? Se eles iriam puxar com uma revisão específica, isso usaria um comando remoto diferente através do ssh?

    
por goathens 27.09.2009 / 15:53

3 respostas

5

O Mercurial vem com um script útil já configurado exatamente para esse tipo de acesso restrito. O script provavelmente já está no seu servidor e é chamado hg-ssh, mas você também pode encontrá-lo aqui: link

Para usá-lo, basta colocar uma linha como esta no arquivo /home/user/.ssh/authorized_keys :

command="hg-ssh path/to/repo1 /path/to/repo2 ~/repo3 ~user/repo4" ssh-dss ...

Isso vai garantir que as pessoas com essa chave só possam usar o mercurial (não um shell) e apenas os repositórios listados.

    
por 08.11.2009 / 19:26
2

Então, se você não quiser deixá-los pressionar, então eu recomendo que use a opção --read-only para o comando hg-ssh, além da resposta do Ry4an.

    
por 27.06.2013 / 03:23
0

Inscreva-se no Bitbucket e clone seu repositório nele.

Em seguida, você pode criar chaves de implantação e distribuí-las aos usuários.

Como alternativa, faça com que os usuários se inscrevam no Bitbucket e concedam permissão somente leitura. Eles podem acessar o repositório usando https, ou ssh, se fizerem o upload de sua chave pública.

    
por 08.10.2009 / 03:41

Tags