2013-06-06 22 views
12

Mam dostęp do konta SSH, które może uzyskać dostęp do serwera GIT i mogę klonować/pchać/ciągnąć repo w tym loginie SSH. Jednak nie mam dostępu do tego repo z innego miejsca.Dostęp do repozytorium Git przez tunel SSH

na konto SSH używam,

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

sklonować repo.

Próbowałem utworzenie tunelu SSH do serwera git z innego urządzenia za pomocą,

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

Jednak Wciąż coraz poproszony o hasło dla użytkownika „git”. Jakieś pomysły, co tu robię źle?

Odpowiedz

12

Kiedy to zrobić:

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

klient ssh zaczyna się na lokalnym komputerze („sshserver”) i uwierzytelniania z „gitserver” za pomocą kluczy publicznych. Jeśli zostaniesz poproszony o hasło dla użytkownika 'git', oznacza to, że uwierzytelnianie klucza publicznego nie powiodło się, a ssh przechodzi do następnej metody, która jest uwierzytelniana hasłem.

Najbardziej prawdopodobnym powodem niepowodzenia uwierzytelnienia klucza publicznego jest to, że klient ssh nie ma wymaganego klucza prywatnego. Podejrzewam w tym przypadku, że klucz potrzebny do uwierzytelnienia jako "git @ gitserver" znajduje się w sshserver: ~/.ssh, w takim przypadku nie byłby dostępny dla klienta ssh uruchomionego na lokalnym hoście, gdy próbujesz sklonować repo przez tunel ssh.

Aby rozwiązać ten problem, musisz dać temu klientowi dostęp do odpowiedniego klucza. Możesz dodać go do ~/.ssh lokalnie lub załadować do agenta ssh.

+0

Dziękuję, że działało (również używane http://stackoverflow.com/questions/4565700/specify-private-ssh-key-to-use-when-executing-shell-command-with-lub-rubou) na skonfiguruj plik konfiguracyjny, aby pomóc. – Bootstrapper

Powiązane problemy