Apakah mungkin menggunakan file .netrc di Windows ketika saya menggunakan Git untuk mengkloning repositori jarak jauh dengan HTTP dan kata sandi pengguna?
Apakah mungkin menggunakan file .netrc di Windows ketika saya menggunakan Git untuk mengkloning repositori jarak jauh dengan HTTP dan kata sandi pengguna?
Jawaban:
Apakah mungkin untuk menggunakan
.netrcberkas pada Windows?
Ya kamu harus:
%HOME%(pra-Git 2.0, tidak diperlukan lagi dengan Git 2.0+)_netrcfile%HOME%Jika Anda menggunakan Windows 7/10, dalam suatu CMDsesi, ketikkan:
setx HOME %USERPROFILE%
dan %HOME%akan diatur ke ' C:\Users\"username"'.
Buka folder itu ( cd %HOME%) dan buat file bernama ' _netrc'
Catatan: Sekali lagi, untuk Windows, Anda memerlukan _netrcfile ' ', bukan.netrc file ' '.
Kontennya cukup standar (Ganti <examples>dengan nilai Anda):
machine <hostname1>
login <login1>
password <password1>
machine <hostname2>
login <login2>
password <password2>
Lukas menyebutkan dalam komentar:
Menggunakan versi terbaru msysgit pada Windows 7, saya tidak perlu mengatur
HOMEvariabel lingkungan. The_netrcberkas saja melakukan trik.
Ini memang yang saya sebutkan di " Mencoba" install"github, .sshdir not there ":
git-cmd.battermasuk dalam msysgit yang mengatur %HOME%variabel lingkungan:
@if not exist "%HOME%" @set HOME=%HOMEDRIVE%%HOMEPATH%
@if not exist "%HOME%" @set HOME=%USERPROFILE%
爱国者 percaya pada komentar bahwa "sepertinya itu tidak akan berfungsi untuk protokol http"
Namun, saya menjawab yang netrcdigunakan oleh curl, dan berfungsi untuk protokol HTTP, seperti yang ditunjukkan dalam contoh ini (cari ' netrc' di halaman):. Juga digunakan dengan protokol HTTP di sini: " _netrc/ .netrcalternative tocURL ".
Perangkap umum dengan netrcdukungan pada Windows adalah bahwa git akan memotong menggunakannya jika url https asal menentukan nama pengguna.
Misalnya, jika .git/configfile Anda mengandung:
[asal "jarak jauh"]
fetch = + ref / head / *: ref / remote / origin / *
url = https: //bob@code.google.com/p/my-project/
Git tidak akan menyelesaikan kredensial Anda melalui _netrc, untuk memperbaikinya hapus nama pengguna Anda, seperti:
[asal "jarak jauh"]
fetch = + ref / head / *: ref / remote / origin / *
url = https://code.google.com/p/my-project/
Solusi alternatif: Dengan git versi 1.7.9+ (Januari 2012): Jawaban dari Mark Longair ini merinci mekanisme cache kredensial yang juga memungkinkan Anda untuk tidak menyimpan kata sandi Anda dalam teks biasa seperti yang ditunjukkan di bawah ini.
Dengan Git 1.8.3 (April 2013):
Anda sekarang dapat menggunakan .netrc terenkripsi (dengan gpg).
Di Windows: %HOME%/_netrc( _, bukan ' .')
Sebuah read-only helper credential baru (di
contrib/) untuk berinteraksi dengan.netrc/.authinfofile telah ditambahkan.
Skrip itu akan memungkinkan Anda untuk menggunakan file netrc terenkripsi gpg , menghindari masalah menyimpan kredensial Anda dalam file teks biasa.
File dengan
.gpgekstensi akan didekripsi oleh GPG sebelum diuraikan.
Beragam-fargumen tidak masalah. Mereka diproses secara berurutan, dan entri yang cocok pertama kali ditemukan dikembalikan melalui protokol pembantu kredensial.Bila tidak ada
-fopsi yang diberikan,.authinfo.gpg,.netrc.gpg,.authinfo, dan.netrcfile dalam direktori home Anda digunakan dalam urutan ini.
Untuk mengaktifkan penolong kredensial ini:
git config credential.helper '$shortname -f AUTHFILE1 -f AUTHFILE2'
(Perhatikan bahwa Git akan menambahkan "
git-credential-" ke nama helper dan mencarinya di path.)
# and if you want lots of debugging info:
git config credential.helper '$shortname -f AUTHFILE -d'
#or to see the files opened and data found:
git config credential.helper '$shortname -f AUTHFILE -v'
Lihat contoh lengkap di " Apakah ada cara untuk melewatkan pengetikan kata sandi saat menggunakanhttps:// github "
Dengan Git 2.18+ (Juni 2018), Anda sekarang dapat menyesuaikan program GPG yang digunakan untuk mendekripsi .netrcfile terenkripsi .
Lihat commit 786ef50 , commit f07eeed (12 Mei 2018) oleh Luis Marsano (``) .
(Digabung oleh Junio C Hamano - gitster- dalam komit 017b7c5 , 30 Mei 2018)
git-credential-netrc: terimagpgopsi
git-credential-netrctelah hardcoded untuk mendekripsi dengan 'gpg' terlepas dari opsi gpg.program.
Ini merupakan masalah pada distribusi seperti Debian yang menyebut GnuPG modern sesuatu yang lain, seperti 'gpg2'
http.proxyvariabel lingkungan Anda. Atau, sebaliknya, untuk menambahkan server Anda ke no_proxyvariabel, untuk menghindari mencoba mengakses server LAN melalui WAN.
msysgitpada Windows 7, saya tidak perlu mengatur HOMEvariabel lingkungan. The _netrcberkas saja melakukan trik.
Anda juga dapat menginstal Git Credential Manager untuk Windows untuk menyimpan kata sandi Git di pengelola kredensial Windows _netrc. Ini adalah cara yang lebih aman untuk menyimpan kata sandi.
.netrcfile yang dienkripsi . Anda tidak perlu memasukkan kredensial itu bahkan sekali selama sesi.
Ini akan memungkinkan Git mengautentikasi pada HTTPS menggunakan .netrc:
_netrcdan terletak di c:\Users\<username>.HOME=%USERPROFILE%(mengatur variabel lingkungan sistem-lebar menggunakan opsi Sistem di panel kontrol. Tergantung pada versi Windows, Anda mungkin perlu memilih "Opsi Lanjutan".)._netrcfile tidak boleh berisi spasi (mengutip kata sandi tidak akan berfungsi).Saya memposting cara yang digunakan _netrcuntuk mengunduh materi dari situs www.course.com.
Jika seseorang akan menggunakan coursera-dl untuk mengunduh materi kelas terbuka di www.coursera.com, dan pada OS Windows seseorang ingin menggunakan file seperti ".netrc" yang mirip dengan-Unix OS untuk menambahkan pilihan -nbukan -U <username> -P <password>untuk kenyamanan. Ia dapat melakukannya seperti ini:
Periksa jalur beranda pada OS Windows: setx HOME %USERPROFILE%(lihat jawaban VonC ). Ini akan menyimpan HOMEvariabel lingkungan sebagai C:\Users\"username".
Temukan ke dalam direktori C:\Users\"username"dan buat nama file _netrc. CATATAN: TIDAK ada sufiks.
kontennya seperti:machine coursera-dl login <user> password <pass>
Gunakan perintah seperti coursera-dl -n --path PATH <course name>untuk mengunduh materi kelas. Lebih banyak opsi coursera-dl untuk halaman ini .
HOMEvariabel lingkungan penting, karena tidak didefinisikan secara default pada Windows. Anda dapat mengatur variabel itu ke direktori apa pun yang Anda inginkan (tidak harusC:\users\mylogin): misalnya, di kantor, saya mengaturnya ke disk jarak jauh pribadi saya yang terkait dengan akun Windows saya, yang memungkinkan saya untuk beralih desktop tanpa harus kehilangan pengaturan saya.sshatau_netrc.