2011-08-11 5 views
1

내 설정은 우분투 - gitolite - msysgit입니다. 이 튜토리얼을 수행 한 후 :새 사용자로 git 저장소를 복제 할 수 없습니다.

https://sites.google.com/site/senawario/home/gitolite-tutorial

모든 것이 잘 작동합니다.

은 그래서 수정하고 커밋 - 설정 파일을 밀어 :

repo gitolite-admin 
     RW+  = id_rsa 

repo testing 
     RW+  = @all 

repo project-euler 
     RW+  = tester 

Everyhting는 등 업데이트있어

지금은 "테스터"사용자와이를 테스트하고 싶지만 내가 할 수 없습니다. clone tester @ myServer : 프로젝트 - 오일러 작업을해야하지 않습니까? 내가 위를하려고하면

내가 얻을 :

$ git clone [email protected]:project-euler 
Cloning into project-euler... 
Permission denied (publickey). 
fatal: The remote end hung up unexpectedly 

나는 내가 자식을 관리자에게 사용되는 동일한 시스템에서 이것을 시도했다.

내가 이것을 사용하려고하면 :

git [email protected]:project-euler 

내가 얻을 : 망할 놈의 사용자가 액세스 할 수 없기 때문에 내가 생각하는 정상

id_rsa_gsg_keypair를 거부 프로젝트 오일러에 대한 R 액세스를.

아이디어가 있으십니까? 언급 한 바와 같이

는 @VonC의 링크를 따라 난 후에 나는 설정 파일을 만들었습니다. 나는 여전히 문제가있어서 ssh -v를 문제가있는 사용자와 함께 즐겁게한다. 출력은 다음과 같습니다

OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007 
debug1: Reading configuration data /c/Users/Stefanos/.ssh/config 
debug1: Applying options for 192.168.1.3 
debug1: Connecting to 192.168.1.3 [192.168.1.3] port 22. 
debug1: Connection established. 
debug1: identity file /c/Users/Stefanos/.ssh/tester type 1 
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.8p1 Debian-1ubuntu3 
debug1: match: OpenSSH_5.8p1 Debian-1ubuntu3 pat OpenSSH* 
debug1: Enabling compatibility mode for protocol 2.0 
debug1: Local version string SSH-2.0-OpenSSH_4.6 
debug1: SSH2_MSG_KEXINIT sent 
debug1: SSH2_MSG_KEXINIT received 
debug1: kex: server->client aes128-cbc hmac-md5 none 
debug1: kex: client->server aes128-cbc hmac-md5 none 
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent 
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP 
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent 
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY 
debug1: Host '192.168.1.3' is known and matches the RSA host key. 
debug1: Found key in /c/Users/Stefanos/.ssh/known_hosts:1 
debug1: ssh_rsa_verify: signature correct 
debug1: SSH2_MSG_NEWKEYS sent 
debug1: expecting SSH2_MSG_NEWKEYS 
debug1: SSH2_MSG_NEWKEYS received 
debug1: SSH2_MSG_SERVICE_REQUEST sent 
debug1: SSH2_MSG_SERVICE_ACCEPT received 
debug1: Authentications that can continue: publickey 
debug1: Next authentication method: publickey 
debug1: Offering public key: /c/Users/Stefanos/.ssh/tester 
debug1: Authentications that can continue: publickey 
debug1: No more authentication methods to try. 
Permission denied (publickey). 

UPDATE

내가 자식 clong 자식 @ 서버를 사용하여 REPO를 복제 관리 : REPO -하지 테스터 @ 서버 : REPO.

또한 내가 설정 파일이있는 경우 내가 관리자로 로그인 할 수 없습니다. 테스터로만 기록됩니다. 아마도이를 구성하는 방법이 있어야합니다. 모든 도움에 감사드립니다.

+0

* 테스터 *의 공개 키를 복사 했습니까? – Simon

+0

키를/keydir 디렉토리에 복사 한 다음 변경된 것을 git 계정으로 푸시합니다. 모든 것이 효과가있었습니다. 저장소를 삭제하고 다시 복제 한 다음 새 키가 있었는지 확인하는 방법으로 두 번 확인했습니다. – FailedDev

답변

1

먼저 할 일은 그 새로운 사용자의 공개 키는 gitolite 서버에 게시되었는지 확인하는 것입니다.

  • 는 ~ 자식/스푸핑/authorizedkeys의 내용을 확인하고,
  • 에 테스터가있는 줄을 보는 gitolite-관리자의 repo/keydir의 내용을 확인하고, 'tester.pub'파일을 찾습니다 , 여기에 공개 키가 있습니다 (those public keys are named after the user : tester.pub 여기에)
  • 테스터에 그 id_rsaid_rsa.pub이 있는지 확인하십시오.
+0

답장을 보내 주셔서 감사합니다! 나는 실제로 ~ git/.ssh/authorizedkeys를 검사했고 그 열쇠는 물론 git 구문 "command etc"와 함께 있었지만 열쇠는 admin 키와 같았다. 또한 tester.pub도 서버의/keydir에있었습니다. 세 번째 부분에서는 내 컴퓨터 (Win7)에 다른 계정을 만든 다음 C : /Users/tester/.ssh/the 개인 키를 넣어야합니까? – FailedDev

+0

@FailedDev : 열쇠는 여기에 있었지만 그 줄을 복사 할 수 있습니까? 그냥 그것을 확인하기 위해 거기에 맞는 이름이있었습니다. – VonC

+0

@FailedDev : 새 계정을 만들 필요는 없으며 ssh 요청을 할 때 올바른 공개/비공개 키를 선택하기 만하면됩니다. http://stackoverflow.com/questions/5357232/nbgit-to-remote-host-with-ssh/5357423#5357423 또는 http://stackoverflow.com/questions/922210/unable-to-git의 설정 파일을 참조하십시오. -push-master-to-github/922461 # 922461 – VonC

0

당신은 리눅스 사용자와 gitolite 사용자를 혼동하고 있습니다. 그들은 몇 가지 특성을 공유하지만 다른 특성은 다릅니다. 항상은 gitolite에 연결할 때 git URL에서 "git"라는 사용자를 사용합니다. 관계없이 사용자가 연결하려고하는 모든 사용자는 키 쌍 ​​(~/.ssh/id_rsa [.pub])이 있어야합니다. 그래서 당신이 "밥"이라고 가정 해 봅시다. 공개 키는 /home/bob/.ssh/id_rsa.pub에 있습니다.공개 키는 gitolite 구성에 추가되어야합니다. 추가 할 때 "foo.pub"라고 이름을 붙인다고 가정 해 봅시다. 이제 "foo"는 설정에서 참조 할 수있는 유효한 gitolite 사용자입니다. 로컬 사용자 (bob), gitolite (git)에 연결하는 데 사용 된 사용자 및 gitolite 사용자 (foo) 사이에 암시 적 또는 명시 적 연결이 없음을 기억하십시오. 유일한 연결은 gitolite에 "foo"로 로컬 시스템의 "bob"을 식별하는 공개 키입니다.

+0

설정 파일에있는 내용이 무엇이든간에 현재 사용자가있을 수 있음을 의미합니다. 특정 시점에서 시스템 당 한 명의 사용자 만 가능합니다. 어느 쪽이 괜찮을까요? :) – FailedDev

+0

@Failed : 아니, 실제로 gitolite를 사용하면 "[email protected]", "[email protected]"또는 "[email protected]"와 같은 pubkey 파일의 이름을 지정할 수 있습니다. 단일 사용자에게 여러 개의 키를 제공하십시오. "@ .pub"의 이름은 실제로 중요하지 않습니다. 그것은 단지 gitolite 관리자를위한 정보 목적입니다. –

관련 문제