GitLab requer senha git @ localhost para empurrar para um repo

6

Estou tentando colocar o GitLab em funcionamento no meu servidor. Eu segui as instruções de instalação em a página do gitub do gitlab e tudo correu bem.

A questão é, quando eu crio um repositório e tento 'git push -u origem mestre' eu sou solicitado a digitar 'git @ localhost's password':

Algumas pessoas sugeriram adicionar o git a AllowedUsers no meu sshd conf, mas não tenho um campo AllowedUsers para que isso não pareça ser um problema.

Eu ainda sou muito novo no material ssh, então poderia ser um problema de chave ssh, embora eu tenha tentado adicionar todas as chaves ssh relevantes para /home/git/.ssh/authorized_keys.

Alguma sugestão muito apreciada!

    
por DevinR 01.08.2012 / 21:11

2 respostas

4

A maneira correta de acessar um repositório gerenciado pelo gitlab é adicionar uma chave pública.

Primeiro, você precisa criar um par de chaves: (estes são os comandos para uma máquina Linux, e eu acredito que eles também funcionam no Windows se você tiver o git for windows instalado, que instala um ambiente cygwin)

cd ~/.ssh #create this dir if it's absent
ssh-keygen -t rsa -b 2048 #i like 2048 bit rsa keys, but you could use -b 1024 instead

quando solicitado, dê um nome ao arquivo de chaves, digamos que você o chamou de "minha_chave" ele pedirá uma frase-senha. Se você digitar um, a chave privada (veja abaixo) será criptografada com essa frase secreta, então você terá que ter o arquivo-chave instalado corretamente e digitar a frase secreta para executar uma operação git. Você também pode deixar em branco, o que é menos seguro, mas mais conveniente.

Isso gera ~/.ssh/my_key e ~/.ssh/my_key.pub . O arquivo .pub é a chave pública, o outro é a chave privada. Agora você precisa fazer duas coisas:

  1. Forneça a chave pública ao servidor
  2. Configure seu cliente ssh para conhecer e usar a chave privada

para fazer 1., abra my_key.pub em um editor e copie o conteúdo para a área de transferência. Em seguida, faça login no gitlab por meio da interface da web. No canto superior direito, você encontrará uma imagem gerada aleatoriamente, a qual, se você passar o mouse, fornecerá duas opções: "Meu perfil" e "Logout". Clique no primeiro. À direita da página resultante, você verá um botão "adicionar chave pública". Clique nele e você será presenteado com uma página onde você pode colar a chave pública que você copiou. Dê um nome, clique em salvar e pronto.

para fazer 2. (novamente, no linux) abra (crie, se necessário) o arquivo ~/.ssh/config , e adicione a seguinte linha:

IdentityFile ~/.ssh/my_key

Isso diz ao ssh para tentar usar a chave privada ao efetuar login em qualquer site que tente usar a autenticação de chave.

Fundo das teclas (caso você não saiba): as chaves usadas pelo ssh são chamadas de chaves assimétricas. Existe uma "chave pública" e uma "chave privada", e elas são geradas como um par (elas são matematicamente relacionadas). Qualquer coisa criptografada usando a chave pública só pode ser descriptografada usando a chave privada e vice-versa. ssh usa estes para autenticação: você dá a um servidor uma chave pública e seu cliente a chave privada que corresponde. Quando você tenta efetuar login, o servidor basicamente recebe alguns dados aleatórios, criptografa-os com a chave pública e os envia ao cliente. O cliente descriptografa usando a chave privada e envia os dados aleatórios originais de volta ao servidor. O servidor, em seguida, sabe que você é a pessoa que você diz que é (porque seu cliente foi capaz de descriptografar com sucesso.

    
por 19.09.2012 / 18:00
1

@stochastic A principal razão para isso é um problema com chaves ssh incompatíveis.

Eu tive o mesmo problema e ele não conseguiu digitar ssh-key em um perfil do gitlab e deixar o aplicativo fazer o resto.

ssh-keygen -t rsa -C "hereYourEmailUsedInGitlab"

Siga o passo e apenas cole-o no seu perfil.

Importante: Quando você gera a chave em uma sessão em sua máquina. E na mesma tentativa de usá-lo (git clone ...) ele irá falhar. Entre no seu sistema e funcionará.

Faça-me um favor e corrija meu inglês:)

    
por 01.09.2013 / 10:47

Tags