2011-03-29 6 views
3

내 서버에 gitosis 설정이 있는데 원격 컴퓨터의 작업 디렉토리에 대한 체크 아웃 변경 사항을 포스트 후 수신 후크로 만들려고합니다.Gitosis 게시 후 수신 후크가 공개 키 오류를 가져 오는

처음에는 cannot open /home/user/source/testing-local/.git/FETCH_HEAD: Permission denied이라는 오류가 발생하여 작업 디렉토리의 .git 폴더 그룹 소유권을 git 사용자로 변경했습니다.

이 다음 나는 gitosis가 실행 중이고 활성화되어있는 git 사용자의 gitosis에 키를 설정하기 위해 어떤 사용자가 후크를 실행하는지 확인하도록 유도 한 오류 Host key verification failed이 있습니다. 그 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 호출이 그냥로 실행하고있어 어떤 사용자를 확인하는 것입니다.

더 쉬운 방법이 있나요?! 설치 과정에서 중요한 것을 놓친 적이 있습니까?

답변

2

해당 후크를 실행하는 git 사용자에 대해 $HOME 환경 변수의 값을 확인해야합니다.

$HOME/.ssh 여기서 ssh는 핸드 셰이크 중에 개인 키를 찾습니다.
또한 gitosis의 ssh 디렉토리가 has the right permissions으로 끝나야합니다.

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

마지막으로 나는 HOME에 대해 위에서 언급 한 것을 반복 "Permission denied (publickey)" section on GitHub를 참조하십시오 ssh이 열쇠를 찾을 수 없을 때

이 일반적으로 발생합니다.
키가 기본 위치 인 ~/.ssh에 있는지 확인하십시오.

+0

+1 두 번째 줄에 오타가 있습니다. '$ HOME/ssh'는'$ HOME/.ssh'이어야합니다. –

+0

@ 마크 : ... 고정되어 있습니다. 고마워요 :) – VonC

+0

@VonC 당신이 제안한대로 모든 권한을 확인하고 github 도움을 받았다. 이제는 .ssh/config 파일에 필요한 모든 옵션을 지정했습니다. git 사용자의 authorized_keys를 엉망으로 만들면 로그인 할 수 있습니다. 그런 다음 올바른 방식으로 다시 넣을 수 있습니다. 그러나 post-receive 스크립트는 여전히 Permission Denied를 가져옵니다. 어떻게 디버깅을 더 할 수 있을지에 대한 생각은? – ghickman