2010-03-28 30 views
6

Tôi cố gắng để sử dụng ssh cổng chuyển tiếp để đánh bại tường lửa doanh nghiệp:cần phải sử dụng git đằng sau bức tường lửa: cố gắng ssh đường hầm

ssh [email protected]_SERVER -L9418:GIT_SERVER:9418 

và trong thiết bị đầu cuối khác tôi chạy

git clone git://localhost:repositories/project.git 

Nhưng tôi nhận được lỗi sau:

Initialized empty Git repository in /Users/aboxer/tmp/glucosia/.git/

fatal: Unable to look up localhost (port repositories) (nodename nor servname provided, or not known)

Cảm ơn!

+0

Điều này phù hợp hơn cho máy chủ. – Ikke

+1

@ Ikke: Trên thực tế, câu trả lời (tôi tin) là hoàn toàn phù hợp với cú pháp url git, và stackoverflow đã được thiết lập tốt như là nơi dành cho các câu hỏi về cách sử dụng git. – Cascabel

+0

Tôi nhận ra nó sau đó. Tôi nghĩ đó là về cách thiết lập tường lửa. – Ikke

Trả lời

6

Tôi chắc rằng vấn đề của bạn (hoặc ít nhất là một gây lỗi này đặc biệt) là ở đây:

git clone git://localhost:repositories/project.git 

Nếu bạn nhìn vào list of url notations trong con người git push bạn sẽ thấy ví dụ có liên quan:

git://host.xz[:port]/path/to/repo.git/ 

Với dấu hai chấm, bạn đang sử dụng "kho lưu trữ" làm tên cổng và git (dễ hiểu) gặp sự cố khi kết nối với kho lưu trữ cổng trên máy chủ cục bộ! Những gì bạn đang tìm kiếm là:

git://localhost/path/to/repositories/project.git 

hoặc có lẽ

git://localhost/~user/repositories/project.git 

Edit:

tôi có lẽ nên đã nói điều này ngay từ đầu, nhưng tôi không thể thực sự nghĩ về một lý do bạn cần sử dụng SSH tunneling với git. Giao thức truyền tải mặc định của nó là ssh; giao thức git thực sự chỉ xuất hiện để cho phép các kho lưu trữ công khai được tìm nạp mà không cần tài khoản. Nếu bạn có thể SSH vào máy mà kho có vị trí, bạn chỉ có thể lấy thông qua ssh:

git clone ssh://[[email protected]]host.xz/path/to/repo.git 
git clone ssh://[[email protected]]host.xz/~/path/to/repo.git 
git clone ssh://[[email protected]]host.xz/~user/path/to/repo.git 
+0

vâng, điều thú vị là khi tôi không đứng sau tường lửa, lệnh git clone git: // GIT_SERVER: repositories/project.git hoạt động tốt, nhưng git clone git: // GIT_SERVER/repositories/project .git không – Jacko

+0

@ Jacko: Tôi lấy nó mà bạn có nghĩa là loại bỏ đại tràng ở đây không giúp gì được? Ngoài ra, có lý do nào mà bạn không thể đơn giản sử dụng 'git clone ssh: // GIT_SERVER/path/to/repositories/project.git' không? Giao thức truyền tải mặc định của Git là ssh ... – Cascabel

+0

Cảm ơn, Jefromi. Tìm nạp thông qua ssh như được mô tả trong bản chỉnh sửa của bạn hoạt động tốt. – Jacko

0

Các phiên bản ngắn của câu trả lời Vlad Zloteanu của:

Thiết lập đường hầm:

ssh ServerWithSSHAccessAddress -L 2000:GitServerAddress:22 -N , & 

Clone repo

git clone ssh://[email protected]:2000/my_repo.git 
0

Dưới đây là các bước mà làm việc cho tôi. hệ thống của tôi là đằng sau bức tường lửa công ty và nó được join vào miền:

  • NPM Đầu tiên cần phải được cài đặt
  • Fiddler cần phải được chạy chế độ là tốt.Fiddler cần phải chạy với 'Tự động Authenticate' tùy chọn bên dưới 'quy tắc' kích hoạt
  • Cài đặt Git qua lệnh:

NPM cài đặt git

  • Cập nhật giao thức từ git để https:

cấu hình git - url chung. https://github.com/.insteadOf git: //github.com/

Các vấn đề liên quan