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
.netrc
berkas pada Windows?
Ya kamu harus:
%HOME%
(pra-Git 2.0, tidak diperlukan lagi dengan Git 2.0+)_netrc
file%HOME%
Jika Anda menggunakan Windows 7/10, dalam suatu CMD
sesi, 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 _netrc
file ' ', 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
HOME
variabel lingkungan. The_netrc
berkas saja melakukan trik.
Ini memang yang saya sebutkan di " Mencoba" install
"github, .ssh
dir not there ":
git-cmd.bat
termasuk 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 netrc
digunakan 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
/ .netrc
alternative tocURL
".
Perangkap umum dengan netrc
dukungan pada Windows adalah bahwa git akan memotong menggunakannya jika url https asal menentukan nama pengguna.
Misalnya, jika .git/config
file 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/.authinfo
file telah ditambahkan.
Skrip itu akan memungkinkan Anda untuk menggunakan file netrc terenkripsi gpg , menghindari masalah menyimpan kredensial Anda dalam file teks biasa.
File dengan
.gpg
ekstensi akan didekripsi oleh GPG sebelum diuraikan.
Beragam-f
argumen tidak masalah. Mereka diproses secara berurutan, dan entri yang cocok pertama kali ditemukan dikembalikan melalui protokol pembantu kredensial.Bila tidak ada
-f
opsi yang diberikan,.authinfo.gpg
,.netrc.gpg
,.authinfo
, dan.netrc
file 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 .netrc
file 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
: terimagpg
opsi
git-credential-netrc
telah 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.proxy
variabel lingkungan Anda. Atau, sebaliknya, untuk menambahkan server Anda ke no_proxy
variabel, untuk menghindari mencoba mengakses server LAN melalui WAN.
msysgit
pada Windows 7, saya tidak perlu mengatur HOME
variabel lingkungan. The _netrc
berkas 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.
.netrc
file yang dienkripsi . Anda tidak perlu memasukkan kredensial itu bahkan sekali selama sesi.
Ini akan memungkinkan Git mengautentikasi pada HTTPS menggunakan .netrc
:
_netrc
dan 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".)._netrc
file tidak boleh berisi spasi (mengutip kata sandi tidak akan berfungsi).Saya memposting cara yang digunakan _netrc
untuk 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 -n
bukan -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 HOME
variabel 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 .
HOME
variabel 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.ssh
atau_netrc
.