我在我的服務器上設置了gitosis設置,我試圖創建一個post-receive鉤子來檢查遠程計算機上工作目錄的更改。Gitosis post-receive hook部署存儲庫獲取公鑰錯誤
最初我得到一個錯誤,說cannot open /home/user/source/testing-local/.git/FETCH_HEAD: Permission denied
所以我將工作目錄的.git文件夾的組所有權更改爲git用戶。
之後我得到了錯誤Host key verification failed
,這導致我檢查哪個用戶正在運行鉤子,當然是git(愚蠢的我!),所以我在gitosis中爲git用戶設置了一個gitosis密鑰,並啓用了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
調用只是爲了檢查我跑作爲用戶。
有沒有更簡單的方法來實現這一目標?我的設置中是否遺漏了某些鍵?
+1在第二行有一個錯字,順便說一句 - '$ HOME/ssh'應該是'$ HOME/.ssh' – 2011-03-29 10:45:51
@Mark:...並且是固定的。謝謝:) – VonC 2011-03-29 10:52:25
@VonC我已經檢查了所有的權限,正如你所建議的,並通過github的幫助。我現在已經在.ssh/config文件中指定了所有必要的選項,只是爲了確定。如果我混淆了git用戶的authorized_keys,那麼我可以以它的身份登錄(然後將其恢復到原來的樣子),我可以成功地在正確的目錄中執行操作,但post-receive腳本仍然會獲得權限拒絕。有關我如何進一步調試的想法? – ghickman 2011-03-29 14:29:51