2013-06-06 3 views
12

GIT 서버에 액세스 할 수있는 SSH 계정에 액세스 할 수 있으며이 SSH 로그인에서 저장소를 복제/푸시/풀할 수 있습니다. 그러나 다른 곳에서이 저장소에 액세스 할 수 없습니다. 내가 사용하는 SSH 계정에 SSH 터널을 통해 Git repo에 액세스하십시오.

,

git clone [email protected]:proj/myrepo.git 

는 REPO를 복제합니다. 내가 사용하는 다른 컴퓨터에서 자식 서버에 SSH 터널을 설정하는 시도

,

ssh -L 3333:gitserver:22 [email protected] 
git clone ssh://localhost:3333/proj/repo.git 

는 그러나 나는 사용자 '자식'에 대한 암호를 입력하라는 메시지가 점점 계속. 어떤 아이디어가 내가 여기서 잘못하고있는 것인가?

답변

12

당신이 할 때 : SSH 클라이언트는 로컬 호스트 ('sshserver')에 시작하고 공개 키 인증을 사용하여 'gitserver'로 인증하는

git clone [email protected]:proj/myrepo.git 

. 사용자 'git'에 대한 암호를 묻는 메시지가 표시되면 공개 키 인증에 실패했으며 ssh가 암호 인증 인 다음 방법으로 넘어 가고 있음을 의미합니다.

공개 키 인증이 실패하는 가장 큰 이유는 ssh 클라이언트에 개인 키가 필요하지 않기 때문입니다. 이 경우에는 'git @ gitserver'로 인증하는 데 필요한 키가 sshserver에 있다고 의심됩니다. ~/.ssh.이 경우 repo를 복제하려고 할 때 로컬 호스트에서 시작된 ssh 클라이언트에서 사용할 수 없습니다. ssh 터널을 통해.

이 문제를 해결하려면 해당 클라이언트에 적절한 키에 대한 액세스 권한을 부여해야합니다. ~/.ssh에 로컬로 추가하거나 ssh 에이전트에로드 할 수 있습니다.

+0

감사합니다. (http://stackoverflow.com/questions/4565700/specify-private-ssh-key-to-use-when-executing-shell-command-with-or-without-ruby) 설정 파일을 설정하여 도움을 받으십시오. – Bootstrapper

관련 문제