2012-02-20 3 views
2

바보 같이 내 노트북 ​​하드 디스크를 gitolite에 대한 ssh 키로 포맷, 내 서버에 대한 루트 액세스 권한이 있고이 대답을 Gitolite access repair 따라 성공적으로 내 repo 복사본을 만들었습니다 하는 파일의 tmp 폴더에 고정gitolite 및 잠김 글자 - 관리자 - 밀어 넣기

내 문제는 "GL-관리자 푸시"를 여기 할 때 나는 오류가 발생하는 오류입니다 :

Unable to determine correct path for gitolite scripts from the authkeys file. 

Perhaps you haven't installed gitolite yet? 

Or perhaps this is an HTTP mode install? If so, please set the GL_BINDIR 
environment variable to the full path of the gitolite scripts, then re-try 
this command. For example (if you followed doc/http-backend.mkd precisely): 

GL_BINDIR=/var/www/gitolite-home/bin /home/git/bin/gl-admin-push 
내 gitolite 내가 잠겨 전에 잘 작동했다 설치

나 자신 (페이스 팔)

A 이 엉망진창에서 벗어날 수있는 방법에 대한 아이디어?

+0

그리고'GL_BINDIR' 환경 변수의 값은 무엇입니까? – VonC

+0

authorized_keys에서 문제가 발생했습니다. 공개 키 이전에 명령이 누락되었습니다. 예 : command = "/ home/git/bin/gl-auth-command myusername", 포트 포워딩 없음, X11 전달 없음, 에이전트 전송 안 함, no-pty - 현재 작동 중 – Purplefish32

+0

양호 잡기. 나는 아래의 답변으로 더 많은 가시성을위한 참조를 추가했습니다. – VonC

답변

2

OP Purplefish32gl-admin-push을 실행하는 사용자가 공개 키를 제대로 등록하지 않은 경우에도이 메시지가 발생할 수 있음을 알았습니다.

그 키는 gitolite force-command 스크립트로 설정해야합니다.

command="/home/git/bin/gl-auth-command myusername",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty 

이 무엇 that script does과 일치 :

# if GL_BINDIR was not passed in, find it 
[ -z "$GL_BINDIR" ] && 
    GL_BINDIR=` perl -ne 'print($1), exit if /^command="(.+?)\/gl-(time|auth-command) /' < $HOME/.ssh/authorized_keys` 
# GL_BINDIR still not known? we have a problem... 
[ -z "$GL_BINDIR" ] && { 
    echo " 

Unable to determine correct path for gitolite scripts from the authkeys file. 
2

나는 똑같은 문제가 있었다.

수정 내가 추가하고 싶은 사용자에 대한이 언급 한 command=".." 라인 VonC 플러스 SSH-pubkey 그의 ~/.ssh/ 폴더에 내 git 사용자 (하나는 gitolite 작업)에 대한 서버의 authorized_keys 파일을 업데이트하는 것이 었습니다 그 입장은 다른 기존 입장들과 일치했습니다.

또한 ~/ssh/old_authkeys 파일을 삭제해야했습니다. 왜냐하면 gitolite가 항상이 파일을 참조하여 업데이트 된 authorized_keys 파일을 삭제하는 것처럼 보였기 때문입니다. (좋아, 나는 그것을 다시 필요로 할 경우에 대비해 ...)

두 번째 부분 때문에 나는 여분의 게시물을 만들 자격이 있다고 느낀다. ;)

편집 :
authorized_keysold_authkeys에 나는 새의 repo 또는 그룹 설정으로 내 gitolite 설정을 업데이트 할 때마다 이동하는 것 같다. : |

EDIT2 : 모든 문제의
소스 ...으로부터 서버의 repo의에 액세스하려고 할 때 나는에

[email protected]:repo 

처럼 gitolite에 대한 사용이 git라는 사용자로 로그인되지 않는 한 서버이지만, 예 : myuser.
이로 인해 설정이 엉망으로 바뀌고 authorized_keys 파일이 되돌아 왔습니다.
I 사용자 git에 대한 SSH-키를 설정 (그리고 myuser에 대한) 일단 , git (안 myuser 등)로 로그인, 나는

git clone /local/path/on/server/to/gitolite-admin 
(then I set the right permissions in the gitolite config) 
gl-admin-push 

를 통해 설정을 고정하고 로그인 할 때 모든이 ... 이루어졌다 in git 사용자 또한 gl-admin-push가 오류없이 작동합니다.

는 이후 git clone [email protected]:repo의 일반 사용 - git add . - git commit - git push [email protected]:repo이 가능했다.

큰 문제를 일으키는 또 다른 사용자 권한.

//이 얻은 지식은 시간을 낭비 할만한 가치가없는 지혜가 있습니다.

+0

고마워요, 제 'authorized_keys' 파일을 편집하고 돌아 왔습니다! –

+0

sjas, StackOverflow에 게시하는 모든 콘텐츠에 맹호 단어를 사용하지 마십시오. 답은 맹세를 제거하기 위해 편집됩니다. –

+0

아, 죄송합니다. 그리고 나는 정말로 bybe가 원하는 배지를 곧 얻을 수 있기를 바랍니다. – sjas

관련 문제