Saya bertanya-tanya apakah ada cara untuk menyimpan kata sandi Subversion saya saat melakukan svn
operasi dari konsol. Konsol adalah satu-satunya pilihan yang saya miliki. Ketika saya mencoba melakukan tindakan Subversion apa pun, misalnya svn commit
, ia selalu meminta sandi akun. Adakah cara untuk menyimpan kata sandi ini sehingga saya tidak perlu mengetik ulang setiap saat?
106
Jawaban:
Masuk
~/.subversion/config
, Anda mungkin punyastore-passwords = no
. Ubah keyes
(atau beri komentar karena defaultnya adalah ya), dan lain kali Anda memberikan kata sandi kepada Subversion, itu akan menyimpannya.Anda mungkin ingin memastikan bahwa pemilik dan izin
~/.subversion/config
sudah benar (tidak ada akses publik atau grup; 600).sumber
Red Hat Linux 2.6.18
. tahu dimana itu?/etc/subversion/config
sistem file berfungsi seperti yang diharapkan. Terima kasihstore-passwords
Opsi masukconfig
sekarang tidak digunakan lagi, menurut beberapa komentar default yang saya temukan diconfig
file saya ; itu telah diganti dengan opsi yang sama diservers
.)Itu tergantung pada protokol yang Anda gunakan. Jika Anda menggunakan SVN + SSH, klien SVN tidak dapat menyimpan kata sandi Anda karena tidak pernah menyentuhnya - klien SSH akan meminta Anda secara langsung. Dalam kasus ini, Anda dapat menggunakan kunci SSH dan ssh-agent untuk menghindari permintaan konstan. Jika Anda menggunakan protokol svnserve atau HTTP (S), maka klien SSH menangani kata sandi Anda dan dapat menyimpannya.
sumber
.ssh/config
, menambahkan kunci publik ke server SVN.Coba bersihkan
.subversion
folder Anda di direktori beranda dan coba lakukan lagi. Ini akan meminta Anda untuk memasukkan kata sandi Anda dan kemudian menanyakan Anda apakah Anda ingin menyimpan kata sandi.sumber
Saya harus mengedit
~/.subversion/servers
. Saya mengaturstore-plaintext-passwords = yes
(tidak ada sebelumnya). Itu berhasil. Ini mungkin dianggap tidak aman.sumber
store-passwords = yes
. Saya yakin ini sudah disetel sebelumnya, tetapi tidak disetel saat saya memperbarui ke SVN 1.7Harap perhatikan paragraf berikut dari
~/.subversion/servers
file:Setidaknya untuk SVN versi 1.6.12. Jadi ingatlah untuk mengedit file server juga saat menimpa
~/.subversion/config
.sumber
Jika Anda menggunakan svn + ssh , Anda dapat menyalin kunci ssh publik Anda ke mesin jarak jauh:
sumber
Bagi saya (pengguna Mac) masalahnya adalah bahwa rantai kunci sudah memiliki entri yang disimpan untuk kredensial saya, tetapi hak aksesnya tidak benar.
Menghapus entri di aplikasi key chain dan membuatnya kembali dengan menggunakan svn memperbaiki masalah.
sumber
Tak satu pun dari jawaban luar biasa ini berhasil untuk saya pada instalasi baru Ubuntu. Sebaliknya, petunjuk dari jawaban ini berhasil bagi saya.
Saya harus mengizinkan penyimpanan sandi "sederhana" dengan mengosongkan ini di
~/.subversion/config
:Tidak ada setelan yang ada, jadi mengosongkan itu penting.
Ini sebagai tambahan untuk:
masuk
~/.subversion/servers
.sumber
Menggunakan teks biasa mungkin bukan pilihan terbaik, jika sandi pernah digunakan sebagai sesuatu yang lain.
Saya mendukung jawaban yang diterima, tetapi itu tidak berhasil untuk saya - untuk alasan yang sangat spesifik: Saya ingin menggunakan salah satu
kwallet
ataugnome-keyring
penyimpanan kata sandi. Saya mencoba mengubah pengaturan, di seluruh empat file:Bahkan setelah semuanya disetel sama, dengan
password-stores
dan nama KWallet (default mungkin salah, kan?) Itu tidak berfungsi dan terus meminta kata sandi selamanya. File di~/.subversion
memiliki izin 600.Nah, pada saat itu, Anda dapat mencoba memeriksa satu hal sederhana:
Jika Anda mendapatkan:
maka Anda mungkin curiga dengan kemungkinan besar bahwa klien ini dibangun dari sumber, secara lokal, oleh administrator Anda (yang mungkin Anda sendiri, seperti dalam kasus saya).
Subversion adalah binatang buas untuk dikompilasi , sangat mudah dibuat secara tidak sengaja tanpa dukungan HTTP, atau - seperti dalam contoh saya - tanpa dukungan untuk penyimpanan kata sandi terenkripsi (Anda memerlukan file pengembangan Gnome atau KDE, dan banyak lagi!). Tetapi
./configure
skrip tidak akan memberi tahu Anda itu, dan Anda hanya mendapatkan yang kurang fungsionalsvn
perintah yang .Dalam hal ini, Anda dapat kembali ke klien, yang disertakan dengan distribusi Anda, biasanya dalam
/usr/bin/svn
. Kelemahannya adalah - Anda mungkin perlu memeriksa ulang copy pekerjaan, karena tidak adasvn downgrade
perintah. Anda dapat berkonsultasi dengan Linus Torvalds tentang apa yang harus Anda pikirkan tentang Subversion;)sumber
Untuk menambah jawaban Heath: Sepertinya Subversion 1.6 menonaktifkan penyimpanan kata sandi secara default jika tidak dapat menyimpannya dalam bentuk terenkripsi. Anda dapat mengizinkan penyimpanan sandi yang tidak dienkripsi dengan menyetel secara eksplisit
password-stores =
(yaitu, ke nilai kosong) di~/.subversion/config
.Untuk memeriksa penggunaan subversi penyimpanan kata sandi, lihat di
~/.subversion/auth/svn.simple
. Ini berisi beberapa file, masing-masing tabel hash dengan pengkodean kunci / nilai sederhana. Disvn:realmstring
setiap file mengidentifikasi untuk bidang mana file itu. Jika file memilikilalu ia menyimpan kata sandi dalam teks biasa di suatu tempat di file itu, di
K 8 password
entri. Jika tidak, ia mencoba menggunakan salah satu yang dikonfigurasipassword-stores
.sumber
Semua metode yang disebutkan di sini tidak berhasil untuk saya. Saya membuat Subversion dari sumber, dan saya menemukan, saya harus menjalankan konfigurasi dengan
--enable-plaintext-password-storage
untuk mendukung fitur ini.sumber
Hanya untuk menekankan apa yang dikatakan Tomasz Gandor dan Domain tentang memiliki versi svn yang benar dan bahwa itu dikompilasi untuk mengaktifkan penyimpanan kata sandi teks biasa, Anda perlu memverifikasi apa yang Anda miliki:
Melawan:
Setelah Anda melihat bahwa versi svn Anda diaktifkan untuk penyimpanan kata sandi teks biasa, maka terapkan semua jawaban lainnya di sini.
sumber
Saya menggunakan klien TortoiseSVN di Windows, dan untuk saya, menyetel parameter simpan kata sandi sebagai yes in
%USERPROFILE%\AppData\Roaming\Subversion\config
tidak membantu untuk menyimpan kata sandi.Kata sandi berhasil disimpan setelah menghapus folder ini (untuk berjaga-jaga jika diganti nama):
Lingkungan Hidup:
sumber
Sayangnya jawaban tidak menyelesaikan masalah meminta kata sandi untuk ssh + svn dengan kunci pribadi yang dilindungi. Setelah beberapa penelitian saya menemukan:
utilitas jika Anda memiliki komputer Linux. Pastikan Anda menyimpan kunci Anda
/home/username/.ssh/
dan ketik perintah ini di Terminal.sumber