Saya mencoba agar klien GitHub untuk Windows berfungsi. Saya menggunakan komputer Win 7 x64 perusahaan di belakang proxy dan firewall perusahaan. Mengikuti berbagai posting lain dan bereksperimen dengan beberapa kombinasi variabel lingkungan dan variabel konfigurasi, saya telah menemukan satu-satunya cara untuk mendapatkan kloning dan mendorong pembaruan agar berfungsi adalah dengan menggunakan variabel lingkungan HTTPS_PROXY, termasuk ID pengguna dan kata sandi domain perusahaan lengkap saya.
Ini tidak dapat diterima dari sudut pandang keamanan. Apakah ada cara lain untuk membuatnya bekerja?
Catatan tambahan:
Berikut ini berhasil:
- Tambahkan variabel lingkungan yang disebut
HTTPS_PROXY
dengan nilaihttp://[domain]\[userid]:[password]@someproxy.mycorp.com:8080
Hal berikut tidak berhasil:
- Menghilangkan id pengguna dan kata sandi dari
HTTPS_PROXY
variabel - Menggunakan variabel lingkungan yang disebut
HTTP_PROXY
(tidakS
) - Menambahkan
http.proxy
variabel ke file config global (.gitconfig
) - Menambahkan
https.proxy
variabel ke file konfigurasi global
Dalam semua kasus, klien GitHub masih tidak mengenali proxy: Konten file TheLog.txt
selalu menampilkan hal berikut saat startup:
[time]|INFO|thread:4|GitHub.Helpers.StartupLogger|Proxy information: (None)
[time]|INFO|thread:4|GitHub.Helpers.StartupLogger|Couldn't fetch creds for proxy
Dan diikuti dengan keluaran dari beberapa upaya otentikasi proxy yang gagal, yang semuanya menunjukkan "Kredensial hilang."
sumber
Jawaban:
Tambahkan entri ini ke file '.gitconfig' Anda di direktori pengguna Anda (buka% USERPROFILE%):
Dan jika Anda tidak ingin menyimpan kata sandi Anda dalam teks biasa, saya akan menggunakan penerusan proxy lokal seperti CNTLM yang memungkinkan Anda untuk mengarahkan semua lalu lintas melaluinya dan dapat menyimpan kata sandi yang di-hash.
Berbeda dengan pertanyaan awal, jika Anda tidak peduli jika kata sandi Anda dalam teks biasa tambahkan ini:
sumber
127.0.0.1
bukanlocalhost
, seperti yang disarankan. Di Windows, tampaknya localhost menunjuk pertama ke alamat IPv6, yang tidak didengarkan oleh CNTLM. Karena itu, git akan menunggu hingga batas waktu (beberapa menit) sebelum beralih ke alamat IPv4.Mencoba semua hal di atas - dan tidak berhasil, satu-satunya hal yang membantu saya adalah CNTLM - http://cntlm.sourceforge.net/ .
Instal dan jalankan cntlm -H, kemudian otentikasi ke proxy corp, edit file cntlm.ini dengan output cntlm, restart layanan windows. Perbarui .gitconfig dengan:
Sekarang cntlm akan melakukan semua otentikasi, dan Anda akan dapat menggunakan GitHub (dan Dropbox, btw) di belakang proxy corp. Setidaknya sampai kata sandi berikutnya berubah :) (daripada melakukan cntlm -H lagi)
sumber
Saya dapat membuat GitHub Shell berfungsi dengan proxy perusahaan kami. Saya memulai GitHub Shell dan menjalankan perintah berikut:
Saya sangat ingin membuat GUI berfungsi juga. Tetapi saya tidak ingin menyetel variabel lingkungan global Windows yang berisi informasi kredensial perusahaan saya.
Anehnya GitHub GUI Client dapat terhubung ke GitHub untuk otentikasi pengguna, tetapi satu-satunya masalah adalah kloning, menarik dan mendorong proyek dari dan ke GitHub. Sepertinya masalahnya ada pada implementasi git. Saya dapat mengonfigurasi git untuk dijalankan melalui proxy kami tanpa meletakkan kredensial saya di pengaturan global git dan itu meminta kredensial saya saat melakukan permintaan tarik atau dorong. Tapi itu hanya berfungsi di Git Shell.
sumber
Jika Anda menggunakan GitHub untuk Windows di perusahaan, kemungkinan besar Anda berada di belakang Firewall / Proxy Perusahaan yang sangat buruk. GitHub untuk Windows belum memiliki parameter proxy di GUI-nya untuk mengatur Opsi.
Untuk mengkonfigurasi GitHub untuk Windows agar menggunakan proxy perusahaan Anda, edit file .gitconfig yang biasanya ditemukan di C: \ Users \ .gitconfig atau C: \ Documents & Settings \ .gitconfig
Tutup GitHub untuk Windows; Di .gitconfig, tambahkan saja
[https] proxy = proxy.yourcompany.com:port
sumber
Saya juga mengalami masalah ini, dan mencoba menggalinya sedikit juga (membongkar klien).
Potongan kode yang menghasilkan pesan log yang kita lihat adalah sebagai berikut:
Jadi blok ini hanya mencatat informasi proxy yang diatur di IE . Pesan log tampaknya tidak ada hubungannya dengan apa yang telah kita siapkan di file konfigurasi atau variabel lingkungan.
sumber
saya tidak tahu tentang firewall Anda, tetapi kampus saya menggunakan proxy
apakah Anda menggunakan git gui? EDIT : baru saja perhatikan bahwa Anda menggunakan klien github untuk windows
Saya menggunakan tortoisegit dan sangat mudah untuk mengatur proxy. Cukup klik kanan di mana saja, tortoisegit> jaringan, aktifkan server proxy dan setel alamat server, nama pengguna, dan kata sandi. selesai
Sejauh yang saya ingat, tortoisegit juga akan bekerja di luar kotak dengan github.
sumber
Berikut cara mengatur proxy di github
Di sini, di kampus saya, kami tidak memiliki nama pengguna dan kata sandi, jadi jika ip perguruan tinggi kami adalah 172.16.10.10 dan port adalah 8080
PS -> Saya akan merekomendasikan menggunakan metode ini untuk mengatur proxy karena segala sesuatunya akan jatuh pada tempatnya saat Anda akan mempelajari Sumber lebih lanjut
sumber
Saya menemukan blog ini bermanfaat. Ini menjelaskan proxy ntlmaps . Ini mungkin kurang aman, tetapi bekerja dengan lancar. Saya tidak bisa mendapatkan cntlm bekerja.
sumber
Bagi kami, pemecahannya melibatkan dua hal yang berbeda. Pertama, seperti yang dijelaskan dalam jawaban Sogger, Anda perlu menambahkan entri ke
.gitconfig
file Anda , yang terletak di%USERPROFILE%
.Kedua, (dan ini adalah bagian yang hilang bagi kami,) Anda perlu mengonfigurasi pengecualian pada server proxy untuk mengizinkan lalu lintas proxy yang tidak diautentikasi ke
*.github.com
Di iPrism, tampilannya seperti ini:
Masalahnya bukan pada proksi, tetapi otentikasi . Dengan mengabaikan persyaratan autentikasi, komunikasi yang diperlukan dapat digandakan dan bekerja dengan project menggunakan klien desktop GitHub.
Perhatikan juga bahwa pendekatan ini tidak memerlukan penyimpanan kredensial proxy dalam
.gitconfig
file.sumber