3

サーバーにgitosisを設定していて、リモートマシンの作業ディレクトリへの変更をチェックアウトする受信後フックを作成しようとしています。

最初にエラーが発生したcannot open /home/user/source/testing-local/.git/FETCH_HEAD: Permission deniedので、作業ディレクトリの.gitフォルダのグループ所有権をgitユーザーに変更しました。

これに続いて、どのユーザーがフックを実行しているかを確認するエラーが発生Host key verification failedしました。もちろんgit(愚かな私です!)なので、gitosisが実行されているgitユーザーのgitosisにキーを設定し、gitosis.confでそれを有効にしました。 。今、私は年をとっていますPermission denied (publickey).

私の受信後のフックは次のようになります。

#!/bin/bash
while read oldrev newrev refname
do
  if [ "$refname" == "refs/heads/master" ]; then
    WORKDIR=/home/user/source/testing-local
    export GIT_DIR=$WORKDIR/.git
    pushd $WORKDIR >/dev/null
    id
    git pull --quiet >/dev/null
  fi
done

呼び出しは、id私が実行しているユーザーを確認することだけです。

これを達成するためのより簡単な方法はありますか?!セットアップで何かキーを見逃したことがありますか?

4

1 に答える 1

2

$HOMEそのフックを実行するgitユーザーの環境変数の値を確認する必要があります。

$HOME/.sshsshがハンドシェイク中に秘密鍵を探す場所です。
また、gitosis側のsshディレクトリに適切な権限があることを確認してください。

server$ chmod go-w ~/
server$ chmod 700 ~/.ssh
server$ chmod 600 ~/.ssh/authorized_keys

最後に、GitHubの「Permissiondenied(publickey)」セクションを参照してください。これは、上記で述べたことを繰り返しHOMEます。

これは通常ssh、キーが見つからない場合に発生します。
キーがデフォルトの場所にあることを確認してください~/.ssh

于 2011-03-29T10:34:41.137 に答える