Simpan kata sandi di TortoiseHg


200

Apakah ada cara untuk mengkonfigurasi TortoiseHg untuk menyimpan kata sandi saya?

Saya memiliki proyek yang dihosting di Google Code yang saya akses menggunakan TortoiseHg. Setiap kali saya ingin mendorong perubahan ke Google Code TortoiseHg meminta saya untuk nama pengguna dan kata sandi. Google Code mengharuskan saya untuk menggunakan kata sandi yang dibuat secara otomatis, dan cukup berulang untuk mencarinya setiap waktu.

Jawaban:


70

Peringatan keamanan

Meskipun jawaban ini diterima pada 2017-09-15, ini bukan solusi yang disarankan. Anda tidak boleh menyimpan kata sandi Anda dalam teks biasa. Gunakan mercurial_keyringekstensi sebagai gantinya. Lihat jawaban lain di sini.


Anda dapat mengubah URL dorong Anda menjadi https: // username: password@hostname.com/repo .

Ini dijelaskan dalam FAQ Google Code dan Mercurial .

EDIT: FAQ Mercurial menjelaskan cara lain untuk melakukannya:

Dengan Mercurial 1.3 Anda juga dapat menambahkan bagian auth ke file hgrc Anda:
[auth]
example.prefix = https://hg.example.net/
example.username = foo
example.password = bar

51
Ini jawaban yang buruk! Anda tidak boleh menyimpan kata sandi plaintext di file APA PUN ... !! Opsi lain (dengan lebih banyak suara) menggunakan mercurial_keyring adalah satu-satunya hal yang benar untuk dilakukan!
Lars Corneliussen

6
+1. Menimbang bahwa hg pushitu tidak merusak (Anda dapat selalu melakukan hg stripperubahan yang tidak diinginkan), mendorong ke repositori jarak jauh bukanlah operasi yang sangat istimewa. Untuk alasan itu, penyimpanan kata sandi plaintext seringkali cukup sempurna, selama orang mengetahui implikasi keamanannya.
Søren Løvborg

4
Masalahnya bukan bahwa seseorang dapat merusak repositori. Masalahnya adalah: (1) orang menggunakan kembali kata sandi, sehingga begitu seseorang berhasil mendapatkan file teks ini, mereka akan dapat mengakses sumber daya yang tidak terkait; (2) peretasan sewenang-wenang dapat disembunyikan ke dalam kode sumber ... (3) kode tersebut mungkin rahasia (tidak semua pengembangan adalah open source), dan setelah dicuri tidak selalu menyenangkan.
maks

6
@max 1) Mungkin benar secara teori, tetapi OP secara khusus menyatakan dia menggunakan kata sandi yang dibuat secara otomatis 2) kontrol versi menghentikan ini, Anda dapat melihat semua perubahan yang diperiksa, bagaimana ini bisa menjadi masalah? 3) jika seseorang memiliki akses ke kata sandi plaintext yang disimpan di komputer Anda, mereka juga memiliki akses ke kode Anda. Kata sandi tidak ada artinya di sini karena mereka hanya dapat membuang kode Anda ke dongle.
goldenratio

4
@ LarsCorneliussen Ini bukan jawaban yang buruk. Tidak setiap kasus penggunaan membutuhkan tingkat keamanan tersebut. Ekstensi keyring adalah opsi, sama seperti ini.
Cypher

265

Kedua jawaban yang ada menyarankan menyimpan nama pengguna dan kata sandi Anda tidak terenkripsi dalam teks biasa , yang sedikit tidak-tidak.

Anda harus menggunakan ekstensi Keyring sebagai gantinya, karena telah dirancang khusus untuk menyimpan kata sandi otentikasi secara aman. Itu sudah dibundel dengan TortoiseHg , jadi yang harus Anda lakukan adalah mengaktifkannya dengan menulis yang berikut di file mercurial.ini Anda :

[extensions]
mercurial_keyring=

Anda juga harus mengaitkan nama pengguna Anda dengan url push dengan mengedit file .hg \ hgrc khusus repositori Anda seperti dalam contoh di bawah ini:

[paths]
default = https://<your_username>@bitbucket.org/tortoisehg/thg

Untuk detail lebih lanjut tentang mengaitkan nama pengguna Anda dengan url, lihat bagian Konfigurasi Repositori (SMTP) dari halaman ekstensi Keyring .


2
Saya baru saja mencoba solusi ini dan ini bekerja sangat baik dengan windows 7. Sangat bagus! Terima kasih!
mateuscb

berfungsi dengan baik untuk saya - tetapi saya pikir Anda juga perlu memasukkan nama pengguna, baik di bawah judul [auth], atau memodifikasi jalur ke repositori seperti nama pengguna @ host (sesuai dengan tautan Keyring di atas)
Tom Carver

1
Jawaban yang bagus, jelas jalan yang harus ditempuh.
vobject

Bagaimana dengan menyimpan nama pengguna dan kata sandi jika Anda berada di belakang proxy web?
Seth

3
Cara yang benar adalah dengan menggunakan bagian auth untuk mengkonfigurasi nama pengguna. Anda seharusnya tidak memiliki informasi auth di jalur repo Anda misalnya[auth] \n bitbucket.org.prefix = bitbucket.org \n bitbucket.org.username = schlamar
schlamar

150

Tiga langkah, tonton tangkapan layar . Catatan: Ini menyimpan kata sandi Anda dalam plaintext.

masukkan deskripsi gambar di sini


37
sepertinya ini juga menyimpan kata sandi dalam plaintext - jika Anda memiliki ekstensi kunci diaktifkan, maka bidang kata sandi menjadi dinonaktifkan
Vlad Iliescu

5
Hanya berfungsi jika Anda menggunakan protokol https, ketika pengaturan ke http gemboknya hilang.
Despertar

Jawaban warisan yang diterima mengisap, ini harus memiliki chekky hijau!
William T. Mallard


2

Cukup modifikasi hgrcfile di .hgdirektori repositori lokal Anda sehingga terlihat seperti ini:

[paths]
default = https://name:password@yourproj.googlecode.com/hg/

di mana nama adalah login Google Code Anda tanpa bit gmail / googlemail misalnya 'fredb' (bukan fredb@gmail.com), kata sandi adalah kata sandi yang dibuat oleh Google, dan proyek Anda adalah nama proyek GC Anda. Jadi sesuatu seperti:

default = https://fred:xyz123@fredproj.googlecode.com/hg/

11
Jangan pernah menyimpan kata sandi dalam teks biasa. TIDAK PERNAH! Gunakan mercurial_keyring - TortoiseHG lalu hanya meminta kata sandi sekali.
Lars Corneliussen

1
Never say never :) Ya, kunci SSH lebih disukai daripada Keyring, Keyring lebih disukai daripada plaintext, tetapi ada situasi yang berbeda, sungguh. PS mengangkat jawaban "keyring" dan yang ini.
Alex Shesterov

0

Ini berfungsi untuk saya gunakan SSH. Saya tahu kata sandinya ada di teks biasa, tapi ini bukan masalah di proyek ini. Anda harus mengubah myUser dan MyOPas untuk kredensial Anda dan jalur ke: TortoisePlink.exe. Edit mercurial.ini

[reviewboard]
password = myPass
[ui]
username = myUser
ssh = "C:\Program Files\TortoiseHg\lib\TortoisePlink.exe" -l myUser -pw  myPass

0

Jika Anda ingin menyimpan kata sandi di mercurial.ini dan tidak berfungsi lagi setelah Anda memutakhirkan ke TortoiseHg 4.9 atau lebih tinggi solusi yang mungkin adalah menambahkan port ke awalan:

[auth]
tax.prefix = http://server:8080
tax.username = cerveser
tax.password = mypassword
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.