web-dev-qa-db-ja.com

etckeeperがgithubにプッシュ

Etckeeperを設定し、ファイルを追加しました/etc/etckeeper/commit.d/60github-Pushコミットを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

ただし、etckeeperがrootとしてプッシュしようとするため、githubへのプッシュは失敗します。 Sudoを使用しても、〜/ .sshキーを含むgitのユーザーアカウント設定は保持されませんか?

[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.
7
orschiro

ルートにいるときのために現在のsshキーを保持するには、Sudo -Eを使用します。そうすれば、ルートssh設定に何も追加する必要はありません。

7
Andre

できることの1つは、1つのリポジトリに使用するキーを指定し、それをgitリポジトリでリモートとして設定することです。

つまり、これをルートの~/.ssh/configに入れることができます。

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

この場合、あなたがgit remote add gitupstream [email protected]:/myrepoであると仮定して、git Push Origin gitupstreamを実行します。

2
gparent

/root/.ssh/configで指定されたキーの代わりにid_rsaを使用しようとしているgitに問題がある場合は、これが私の修正です。

以下は、修正する前のテスト構成ファイルです。

/root/.ssh/config:

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

[リポジトリ] /。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/*

これには2つの問題があります。

  1. SSHでは、[user] @ [address | domain]の代わりに「Host」変数を使用する必要があるようです。
  2. 構成ファイルにはprivateキーが必要なようです。

最初の問題を修正するために、[repo] /。git/configの7行目を次の場所から編集しました。

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

に:

url = bitbucket:trae32566/test.git

2番目の問題を修正するために、/ root/.ssh/configの4行目を次の場所から編集しました。

IdentityFile /root/.ssh/bitbucket.pub

に:

IdentityFile /root/.ssh/bitbucket

ソース: http://www.cyberciti.biz/faq/create-ssh-config-file-on-linux-unix/

1
Trae32566

Sudoは〜/ .sshキーを保持しません。これは、現在そのコマンドをrootで実行しているためです。したがって、rootのsshキーを探します。したがって、rootのキーを作成し、それをgithubユーザーに追加する必要があります。

0
Mike