etckeeper empurrando para o github

5

Eu configurei o etckeeper e adicionei o arquivo /etc/etckeeper/commit.d/60github-push para enviar o commit para o github.

[orschiro@thinkpad etc]$ sudo cat /etc/etckeeper/commit.d/60github-push 
#!/bin/sh 
set -e
if [ "$VCS" = git ] && [ -d .git ]; then   
  cd /etc/   
  git push origin master 
fi

No entanto, o envio para o github falha quando o etckeeper tenta empurrar como root. O uso do sudo não deve preservar as configurações da minha conta de usuário para o git, incluindo minhas teclas ~ / .ssh?

[orschiro@thinkpad etc]$ sudo etckeeper commit "test"
[master de5971c] test
 Author: orschiro <orschiro@thinkpad.(none)>
 3 files changed, 2 insertions(+), 1 deletion(-)
 rename etckeeper/{ => commit.d}/60github-push (100%)
 create mode 100644 test
no such identity: /root/.ssh/id_rsa: No such file or directory
no such identity: /root/.ssh/id_dsa: No such file or directory
no such identity: /root/.ssh/id_ecdsa: No such file or directory
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
    
por orschiro 01.04.2013 / 02:36

4 respostas

6

Para preservar as chaves ssh atuais para quando você está no root, use sudo -E . Dessa forma, não há necessidade de adicionar nada à configuração raiz do ssh

    
por 27.08.2014 / 13:33
2

Uma coisa que você pode fazer é especificar uma chave para usar para um repo e configurá-lo como um controle remoto no seu repositório git.

Isso significa que você pode colocar isso no ~/.ssh/config :

da raiz
Host gitupstream
        HostName example.org
        User git
        IdentityFile /home/<user>/.ssh/id_rsa.pub

Supondo que você git remote add gitupstream [email protected]:/myrepo neste caso, faça git push origin gitupstream .

    
por 01.04.2013 / 03:03
1

Se alguém tiver um problema com o git ainda tentando usar id_rsa em vez da chave especificada em /root/.ssh/config, aqui está minha correção para ele.

Os seguintes são meus arquivos de configuração de teste antes de corrigi-los:

/root/.ssh/config:

Host bitbucket
    HostName bitbucket.org
    User git
    IdentityFile /root/.ssh/bitbucket.pub

[repo] /. git / config:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[remote "origin"]
    url = [email protected]:trae32566/test.git
    fetch = +refs/heads/*:refs/remotes/origin/*

Existem dois problemas com isso:

  1. O SSH parece exigir que você use a variável "Host" no lugar de [usuário] @ [endereço | domínio]
  2. O arquivo de configuração parece precisar da chave privada .

Para corrigir o primeiro problema, editei a linha 7 em /root/.ssh/config em:

url = [email protected]:trae32566/test.git

para:

url = bitbucket:trae32566/test.git

Para corrigir o segundo problema, editei a linha 4 em [repo] /. git / config a partir de:

IdentityFile /root/.ssh/bitbucket.pub

para:

IdentityFile /root/.ssh/bitbucket

fonte: link

    
por 04.09.2014 / 20:33
0

O sudo não preservará suas chaves ~ / .ssh. Isso se deve ao fato de que agora você está root executando esse comando. Então, vai procurar por chaves ssh do root. Então você teria que criar uma chave para root e adicionar isso ao seu usuário github.

    
por 01.04.2013 / 02:43

Tags