Vấn đề đầu tiên không thực sự liên quan đến git - nhiều hơn là bước cần thiết để có thể định cấu hình proxy.
Cấu hình proxy trên máy tính Windows có thể được tìm thấy tại Pa-nen điều khiển -> Tùy chọn Internet -> Kết nối -> Cài đặt mạng LAN.
Nếu "Sử dụng tập lệnh cấu hình tự động" được chọn, trước tiên bạn cần tải xuống tệp đã chỉ định và mở tệp đó. Tôi có một tập tin chứa một tập lệnh nhỏ. Nó trông giống như sau:
function FindProxyForURL(url, host)
{
var myip = myIpAddress();
var hostip = dnsResolve(host);
if (isInNet(hostip,"192.168.0.0","255.255.0.0"))
return "DIRECT";
if (isInNet(hostip,"xyz.abc.0.0","255.255.0.0"))
return PROXY special-proxy:8080;
return "PROXY default-proxy:8080";
}
Vì vậy, trong trường hợp của tôi, proxy được sử dụng là default-proxy:8080
.
Để thực sự có được git sử dụng proxy, tôi phải sử dụng git config --global http.proxy http://<domain>\<username>:<password>@default-proxy:8080
.
Nhược điểm rõ ràng với điều này là bạn sẽ có mật khẩu miền được lưu trữ dưới dạng văn bản thuần trên đĩa cứng.
Các cài đặt khác không hoạt động, mặc dù các nguồn khác nhau yêu cầu. Đó là:
- Thiết lập biến môi trường
https_proxy
hoặc http_proxy
-http://<domain>\<username>:<password>@default-proxy:8080
- Thiết lập git config toàn cầu để giá trị đó:
git config --global https.proxy http://<domain>\<username>:<password>@default-proxy:8080
- Thiết lập biến môi trường
http_proxy
để http://<domain>\<username>:<password>@default-proxy:8080
Để có được xung quanh vấn đề thứ ba, khả năng đơn giản nhất là bỏ qua các lỗi chứng chỉ bằng cách thiết lập một biến môi trường - các chứng chỉ trả về bởi proxy không đáng gì cả:
set GIT_SSL_NO_VERIFY=true
Để không lưu trữ các mật khẩu đơn giản trong cấu hình git, bạn có thể sử dụng một proxy địa phương thay vào đó, ví dụ cntlm.
Nó cho phép lưu trữ băm mật khẩu thay thế. Để lấy hàm băm, sử dụng lệnh này:
cntlm.exe -H -d <domain> -u <username>
Sau đó, bạn sẽ được nhắc nhập mật khẩu. Kết quả sẽ là danh sách ba băm, trong đó PassNTLMv2
rất có thể là danh sách liên quan trong trường hợp này. Thay thế dòng Password
trong cntlm.ini bằng dòng từ đầu ra, bao gồm cả phần PassNTLMv2
.
Rõ ràng, bạn phải định cấu hình git để sử dụng proxy cục bộ này thay thế, ngay bây giờ.
Nguồn
2013-03-01 12:22:08
+1, cảm ơn bạn đã chia sẻ! – CharlesB
Cảm ơn bạn, đây là giải pháp duy nhất hoạt động! Tôi không biết rằng tập lệnh cấu hình tự động sẽ được tải xuống dưới dạng tệp. Một điều tôi nên đề cập đến - nếu ký tự băm (#) xuất hiện ở bất kỳ đâu trong: , nó sẽ không hoạt động, vì git sẽ giải thích mọi thứ qua nó làm nhận xét. –
Boris