2012-02-18 5 views
4

내 서버에 this tutorial을 사용하여 gitolite를 설치했습니다. 이는 "비 루트"방법에 해당합니다.gitolite : ssh를 통해 연결할 수 있습니다. 복제 할 수 없습니다.

gitolite-admin을 내 클라이언트에 다시 복제하려고하면 오류가 발생합니다. 또한

git clone [email protected]:gitolite-admin 
Cloning into gitolite-admin... 
fatal: The remote end hung up unexpectedly 

: :이 오류 메시지가 얻을

git clone ssh://[email protected]:gitolite-admin 
Cloning into gitolite0admin... 
Using username "git-upload-pack 'gitolite". 
fatal: The remote end hung up unexpectedly 

나는 또한 REPO 이름 끝에 .git를 추가 시도를하고, 나는 또한의 오류에 의해 제안 (repositories/gitolite-admin를 추가 시도 위의 링크 된 자습서) 및이 둘의 조합과 아무 것도 작동하지 않습니다. 나는 구글에서 "Username Using"에 관한 어떤 결과도 찾을 수 없다.

ssh를 통해 컴퓨터에 연결할 수 있으며 R 및 W gitolite-admin에 액세스 할 수 있음을 알립니다. SSH가 작동하고 있습니까?

답변

7

확인은 ssh를 parts about gitolite : 당신은 ssh을 통해 server.com에 연결할 수 있다는 사실은 의미

  • 당신의 SSH 키가 더있다 'gitolite없는 키는 관련이없는 것으로 [email protected]~/.ssh/authorized_keys
  • 에 등록 "command="옵션은 들어오는 사용자가 묻는 것과 관계없이 강제로이 명령을 대신 실행 함)을 의미합니다.
    대화 형 세션에서 원하는 명령을 실행할 수 있습니다.나는 모든 타사 튜토리얼에 대해 좋아하지 않는 무엇

은 당신이 별도의을 유지해야

자식 사용자와 ssh를 루트가 아닌 사용자의 동일한 이름을 사용하려고 할 것입니다 :

  • 비 루트 계정 아닌 사용자 (, 관리자 권한으로, gitolite 연결됩니다 단지 SSH 키가있는 t server.com, 아니 SSH에
    • git (로그에 직접 : 두 가지 사용 모드 사이의 혼동을 피하기 정확하게 에,하지 gitolite '을 git'을해야한다 그는 gitolite-admin의 repo)
    • 호스팅 계정, 여기) : git 명령을 실행하는 데 필요한 대화식 세션 (예 : 서버에서 gitolite 저장소에 복제, 실행 gitolite/src/gl-system-install)
    • ssh [email protected]~/.ssh/id_rsa(.pub) publ 는 gitolite의 것 인 경우에 권한을 부여합니다 IC에서 키와 개인 키는 gitolite-admin REPO를 복제하고 다시 REPO

가 있음을 다시 밀어 :
진정한 계정 'gitolite'아니다 , server.com에 명령을 실행할 권한이있는 이름은 'git' ("hosting git services and repos"와 같은 실제 "호스팅 계정")으로 지정하십시오.
다른 모든 git 사용자는 server.com에있는 자식 명령을 git으로 실행합니다.
그리고 특정 사용자 (gitolite)는 '사용자의 권리를 복제하는 것을 허용 수정하고 다시 gitolite-admin의 repo 추진하기 위해 gitolite 설치시 권한 설정과 함께 forced-command mechanism를 통해 인증 층을 gitolite에 연결됩니다.
(즉 유일한 특수성이 추가됩니다 다른 모든 ssh를 자식 사용자에 비해입니다 : 그들은 gitolite-admin 하나입니다 특정 자식의 repo에 액세스 할 필요가 없습니다) 같은 이름을 가진 두 개의 이름을 시도

을 그냥 문제를 요구하고 있습니다.

나는 공개/개인 키에 대한 기본 이름 지정 규칙을 사용하여 좋아하지 않는다, 그래서 나는 의도 된 사용자의 이름과 그 열쇠 정의 클라이언트에서 선호 :

~/.ssh/gitolite.pub 
~/.ssh/gitolite 

그런 다음 내가 구성을 정의를 거기에 함께 ~/.ssh/config을 : 파일

host gitolite 
    user git 
    hostname server.com 
    identityfile ~/.ssh/gitolite 

(여기에 사용자 참고 : 항상 git)
를 그럼 난 복제 할 수 있습니다 내 gitolite-amin의 repo :

+0

사용중인 서버에 키 쌍 권한으로 로그온하는 사용자가 없으므로 사용중인 키가 다른 사람의 ~/.ssh/authorized_keys에 추가되지 않았습니다. 이제 gitolite 서버에 user를 추가 한 사용자가 ~/.ssh/authorized_keys를 가지고 있고 그 파일에서 공개 키와 gitolite 사용자 이름 (steve)을 찾았습니다. 명령 섹션. 또한, gitolite 사용자를 사용하여 내 서버에 연결하는 것은 대화 형 세션이 아닙니다. 그것은 repos가 사용 가능한지 알려주고 즉시 나를 로그 아웃합니다. – steve

+0

@steve : 좋아 보인다. yur 클라이언트 측에서 ~/.ssh/config 파일을 정의하고 'git clone gitolite : gitolite-admin'을 시도해 볼 수 있습니까? – VonC

+0

OK를 (그냥 내가 여전히 계정으로'gitolite'을 고려하는 것이 불안 발견하더라도, 사용자 gitolite''와 사용자 자식 교체) - 여기 내 ~/스푸핑/설정 호스트 server.com \t 사용자 gitolite 에서 라인의 \t 호스트 이름 server.com \t PreferredAuthentications publickey \t IdentityFile "C : \ Users \ user name \ .ssh \ id_rsa"<-이 키는 다른 이름을 가지고 있지만 서버의 공개 키에 해당합니다. 'git clone gitolite : gitolite-admin'의 의미가 확실하지 않지만 호스트를 찾지 못해 연결을 열 수 없습니다. 그런 다음 위와 같은 명령을 실행했지만 여전히 동일한 오류가 발생합니다. – steve

1

후손을 위해 GIT_SSH가 이 아니고 TortoisePlink.exe가으로 설정되어 있는지 확인해야합니다. 힘내라 사용할 수 없다.

관련 문제