git pull: Permissão negada (publickey)

3

Então, estou tentando fazer com que o git trabalhe com meu servidor de repositório (1.2.3.4) (debian) em meu novo servidor no AWS (4.5.6.7 / 10.0.0.111).

Meus repo's .git / config

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[branch "master"]
    remote = origin
    merge = refs/heads/master
[remote "origin"]
    url = [email protected]:/opt/git/repo.git
    fetch = +refs/heads/*:refs/remotes/origin/*

Estou recebendo este erro:

[ec2-user@ip-10-0-0-111 html]$ sudo git pull
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Minha chave pública está presente em /home/git/.ssh/authorized_keys

Anteriormente, fui solicitado a fornecer a senha para o usuário git no meu servidor de repo (não minha senha de arquivo de chave). Em seguida, desativei a senha auth para o usuário do git e recebi a permissão negada. Durante esse período e agora com o erro acima , consegui fazer login com êxito por meio do ssh :

ssh [email protected]

Sem solicitação de senha ou algo semelhante:

debug1: Offering RSA public key: /home/ec2-user/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug1: Authentication succeeded (publickey).

Um login ssh bem-sucedido no servidor repo (1.2.3.4) é semelhante ao seguinte no /var/log/auth.log:

Feb 22 15:45:44 hostname sshd[20142]: Connection from 4.5.6.7 port 50409
Feb 22 15:45:44 hostname sshd[20142]: Found matching RSA key: <fingerprint>
Feb 22 15:45:44 hostname sshd[20142]: Accepted publickey for git from 4.5.6.7 port 50409 ssh2
Feb 22 15:45:44 hostname sshd[20142]: pam_unix(sshd:session): session opened for user git by (uid=0)

Quando eu tento o git pull, é como o auth.log se parece:

Feb 22 15:46:41 hostname sshd[20177]: Connection from 4.5.6.7 port 50410

Então nada mais.

Como posso depurar a falha de autenticação do git ssh para o git quando o comando ssh normal funciona perfeitamente?

    
por chris 23.02.2016 / 09:24

2 respostas

3

Você faz git pull em sudo , que é o problema. Fazendo apenas

git pull

funcionará para você. Também fazendo

sudo ssh [email protected]

falhará para você. O problema é que sudo altera o usuário e não vê mais seu arquivo de identidade /home/ec2-user/.ssh/id_rsa (pesquisa em /root/.ssh/id_rsa ). Faça o pull com seu usuário normal ou copie / mova sua chave para o local apropriado para o usuário de destino ( root ).

    
por 23.02.2016 / 11:48
1

Sua chave ssh não é inválida.

ssh-keygen -t rsa -C "[email protected]" gerará a chave ssh para o usuário atual. Por exemplo:

$ whoami
nodejh

# It will generate the ssh key for user: nodejh
$ ssh-keygen -t rsa -C "[email protected]

# Check that you are connecting to the correct server 
$ ssh -T [email protected]
Hi username! You've successfully authenticated...

sudo ssh-keygen -t rsa -C "[email protected] gerará a chave ssh para root . Assim, ssh -T [email protected] retornará Permission Denied (publickey) , mas sudo ssh -T [email protected] funcionará bem.

Se você deseja gerar a chave ssh para o usuário: admin , você pode alterar o usuário atual para admin e, em seguida, gerar a chave ssh.

# change the current user to admin
$ su admin
# generate ssh key for 'admin'
$ ssh-keygen -t rsa -C "[email protected]'
    
por 24.07.2017 / 10:29