aliasing “git” ssh login para “gitolite”

3

Estou instalando gitolite de pacotes do CentOS para meu cliente. O pacote cria um usuário gitolite , que ficará visível explicitamente durante as operações "git clone". O cliente quer usar "git" e não "gitolite", caso mudemos para algo mais chique depois. Eu não estou muito familiarizado com o CentOS, então eu não quero tentar construir o pacote sozinho a partir do código-fonte. Eu estou querendo saber se há uma maneira de fazer o seguinte:

  1. Engane o sshd para tratar "git" como "gitolite".
  2. De alguma forma, "alias" um novo nome de usuário git para ser o mesmo de todas as formas como o nome de usuário existente do gitolite (talvez através de algumas combinações complexas de useradd).
  3. Renomeie o nome de usuário "gitolite" para "git" sem atrapalhar mais tarde yum update operations
  4. Algo mais que eu não tinha pensado

Eu apreciaria instruções detalhadas ou ponteiros.

    
por Randal Schwartz 18.10.2011 / 23:37

7 respostas

5

Para adicionar um git de usuário 'aliased' para o gitolite, você pode fazer algo semelhante ao seguinte

[ec2-user@ip-10-170-94-162 ~]$ sudo useradd -m foo
[ec2-user@ip-10-170-94-162 ~]$ getent passwd foo
 foo:x:500:502::/home/foo:/bin/bash
[ec2-user@ip-10-170-94-162 ~]$ sudo useradd -o -d/home/foo -u500 -g502 -s/bin/bash -M foo2
[ec2-user@ip-10-170-94-162 ~]$ getent passwd foo2
 foo2:x:500:502::/home/foo:/bin/bash

-o permite uids duplicados, -d define o diretório inicial, -u define o uid, -g define o gid, -s configura o shell, -M diz que não cria o diretório inicial . Eu não tenho certeza de como você poderia manipular isso, no entanto.

    
por 19.10.2011 / 00:25
2

o que você poderia tentar no cliente final, é editar o arquivo ~ / .ssh / config dos usuários e adicionar algumas linhas na base desta

Host yourservername.com
user gitolite

dessa forma, o clone do just git como

git clone yourservername.com:path/to/git/repo.git

em futuras mudanças no nome de usuário, só requer mudança no arquivo ~ / .ssh / config localmente na máquina do usuário

    
por 18.10.2011 / 23:56
0

Experimente # 2.

Crie um usuário "git" com o mesmo UID, diretório pessoal, etc. como "gitolite". Não é minha coisa favorita para fazer, mas deve funcionar.

Já fiz isso antes nas caixas do Ubuntu, e funciona, mas ter várias contas compartilhando um único UID sempre me pareceu um pouco "complicado".

    
por 18.10.2011 / 23:40
0

Para fazer # 1 você pode tentar configurar uma seção em seu arquivo ~ / .ssh / config.

Algo parecido com isto:

host servername
     user gitolite
     hostname server.example.com
     port 22

Então você pode fazer algo como o seguinte e não ter que mexer com nomes de usuário.

git push servername

Isso tudo presume que você esteja usando o OpenSSH como seu cliente ssh.

    
por 18.10.2011 / 23:58
0

Eu instalei recentemente o GitoLite e tentei o método de pacote. Foi confuso para ser honesto.

Minha segunda tentativa foi criar um usuário padrão e instalá-lo manualmente seguindo as instruções do método não-raiz. Mais simples e mais fácil. Eu também queria o nome de usuário "Git" e usei isso.

Então, minha sugestão, remova a instalação do RPM e siga o método não-root. : -)

( link para as instruções, mas se você clonou o repo você já tem isso)

    
por 19.10.2011 / 00:00
0

Se você estiver usando a autenticação baseada em chave no sshd, poderá adicionar um comando forçado no arquivo authorized_keys para sudo como o usuário de destino.

Adicione NOPASSWD em sudoers para parar os prompts duplos.

Requer sudo e um usuário git controlado por marionetes.

    
por 19.10.2011 / 03:57
0

Quando você usa o método de instalação "root", você deve rodar o gl-system-install como root, e então executar o gl-setup como qualquer usuário (e em qualquer número de usuários) para que todos possam ser gitolite "usuários de hospedagem".

Eu não posso imaginar que o RPM iria tirar ou de alguma forma desativar esse recurso inerente.

Então minha resposta seria: não se preocupe com UIDs, etc. Basta instalar o RPM, adicionar o usuário 'git', su - git, então gl - setup yourname.pub. Deveria fazer isso.

    
por 14.11.2011 / 01:13