O Gitlab não funciona com chaves SSH

9

Estou com problemas no Gitlab. Usei o guia a seguir para instalar e configurar o link do Gitlab. A instalação parecia ir bem e tudo. O aplicativo da Web parece estar funcionando bem. No entanto, eu sou incapaz de clonar, puxar, empurrar, basicamente eu essencialmente não posso usar o Gitlab. Eu vi 403 erros com HTTP e permissão negada ao tentar clonar por SSH.

Eu assegurei que minhas chaves privadas estão configuradas corretamente no Windows e OS X. Eu posso ver as chaves públicas no servidor. Eu adicionei o seguinte ao meu arquivo de configuração em ~ / .ssh.config

Host {hostname}
    User git
    Hostname {hostname}
    PreferredAuthentications publickey
    IdentityFile C:/Users/{username}/.ssh/id_rsa

Isso é o que eu vejo em / var / log / secure

Jan 14 17:31:48 dev_version_control sshd[3696]: Connection closed by 192.168.17.113
Jan 14 17:32:18 dev_version_control sshd[3700]: Connection closed by 192.168.17.113

O /var/log/message não desempenhou papel quando tentei usar git ou ssh

Não sei ao certo para onde ir a partir daqui. Alguma sugestão?

Eu não sei o que você quer dizer com SSH usando o nome de usuário git. O guia que usei não criou uma senha para o usuário do git e afirmou que o usuário não pode ser usado para efetuar login.

    
por greyfox 15.01.2014 / 04:02

8 respostas

10

Desde que você tenha carregado sua chave privada em seu cliente, então parece que isso pode ser um problema de permissões no diretório home do usuário 'git' e no diretório .ssh.

Por favor, tente mudar o seu diretório / home / git para uma máscara de 0711:

chmod 0711 /home/git

Verifique se o diretório /home/git/.ssh tem uma máscara de 0700:

chmod 0700 /home/git/.ssh

Verifique se o arquivo /home/git/.ssh/authorized_keys tem uma máscara de 0600:

chmod 0600 /home/git/.ssh/authorized_keys

Substitua / home / git por qualquer que seja seu diretório home para o usuário 'git', se for diferente no tutorial. Se não for permissões, por favor, deixe comentar e vamos ver o que mais poderia ser o problema.

    
por 15.01.2014 / 04:22
1

Também recomendo verificar se o usuário tem permissão adequada para clonar / extrair / inserir no gitlab. Acabei de gastar muito tempo olhando as configurações de ssh / https, quando o motivo do problema era que o usuário no gitlab não tinha permissões suficientes ...

    
por 20.10.2014 / 13:35
1

Na minha situação eu instalei o gitlab via pacotes do FreeBSD. O Gitlab SSH não funcionou. A causa disso foi um diretório home errado para o git: (vipw)

git:*:211:211::0:0:gitosis user:/usr/local/git:/bin/sh

Eu mudei para:

git:*:211:211::0:0:gitosis user:/home/git:/bin/sh
    
por 27.09.2016 / 16:59
1

Isso pode acontecer se o host tiver um '-' em seu nome. (Mesmo que isso seja legal de acordo com RFC 952 .)

ssh me pede uma senha para qualquer host que tenha um '-' em seu nome. Isso parece ser um problema puramente com a análise do arquivo de configuração ssh porque adicionar um alias a ~ / .ssh / config (e usar esse alias em meus URLs remotos git) resolveu o problema.

Em outras palavras, tente colocar algo como o seguinte em seu C: / Users / {username} /. ssh / config

Host {a}
    User git
    Hostname {a-b.domain}
    IdentityFile C:/Users/{username}/.ssh/id_rsa

e onde você tem um controle remoto no formulário

origin  [email protected]:repo-name.git

remova-o e adicione-o novamente usando o formulário

origin  git@a:repo-name.git
    
por 04.08.2017 / 22:33
1

Se você estiver usando variáveis de ambiente para passar a chave, você deve codificá-las com base64, caso contrário, elas provavelmente falharão com um erro solicitando sua frase secreta. Isso significa que a chave está corrompida. Se você ver:

$ ssh-add <(echo "$SSH_PRIVATE_KEY")
Enter passphrase for /dev/fd/63: ERROR: Job failed: exit code 1

Em seguida, base64 codifique a variável SSH_PRIVATE_KEY. Se você está no OS X,

cat ~/.ssh/ssh_key_for_project | base64 | pbcopy

irá codificá-lo e copiá-lo para sua área de transferência. Agora mude a linha de script .gitlab-ci.yml para

- ssh-add <(echo "$SSH_PRIVATE_KEY" | base64 -d)
    
por 22.11.2017 / 19:03
0

Verifique se você tem apenas um registro para sua chave pública (que foi importada por meio do web face) em /home/git/.ssh/authorized_keys e se essa chave possui o prefixo e o título do gitlab. Em outras palavras, se você adicionou a mesma chave manualmente antes de instalar o gitlab, remova-a.

    
por 15.01.2014 / 06:51
0

A execução de eval $(ssh-agent) corrigiu meu problema.

    
por 07.08.2016 / 11:19
0

Meu problema foi que o arquivo de chaves privadas id_rsa criado e salvo por puttygen tem um formato diferente daquele criado a partir de uma máquina ubuntu. Depois que eu criei um par de chaves da máquina Ubuntu, copie esses arquivos de volta para a máquina Windows na pasta% UserProfile% .ssh e adicione a nova chave pública gerada ao Gitlab. Não há mais permissão negada para mim

    
por 11.10.2016 / 06:38

Tags