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.
ルートにいるときのために現在のsshキーを保持するには、Sudo -E
を使用します。そうすれば、ルートssh設定に何も追加する必要はありません。
できることの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
を実行します。
/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つの問題があります。
最初の問題を修正するために、[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/
Sudoは〜/ .sshキーを保持しません。これは、現在そのコマンドをrootで実行しているためです。したがって、rootのsshキーを探します。したがって、rootのキーを作成し、それをgithubユーザーに追加する必要があります。