Ringkasan
Pekerjaan yang diperlukan untuk menginstal svn dengan dukungan keyring dan menginstal aplikasi keyab_tool Collabnet sudah dilakukan untuk server Linux kami.
1) Konfigurasikan klien SVN untuk menggunakan keyring:
1.1) Edit ~ / .subversion / config
[auth]
password-stores = gnome-keyring
1.2) Edit ~ / .subversion / server
[global]
store-passwords = yes
store-plaintext-passwords = no
2) Buat keyring untuk kata sandi Anda. Anda akan diminta untuk membuat kata sandi baru untuk membuka kunci keyring; ini mungkin apa saja yang Anda inginkan:
keyring_tool --create=svn
3) Tetapkan keyring baru sebagai default:
keyring_tool --setdef=svn
4) Dalam .bash_profile atau .bash_login (dengan asumsi Anda menggunakan bash sebagai terminal Anda)
if [ -e /usr/bin/gnome-keyring-daemon ]; then
if [ ! -z "`kill -0 $GNOME_KEYRING_PID 2>&1`" ]; then
# Create dbus transport link for SVN to talk to the keyring.
eval `dbus-launch --sh-syntax`
# Start the keyring daemon.
# The use of export here captures the GNOME_KEYRING_PID, GNOME_KEYRING_SOCK
# env values echoed out at startup.
export `/usr/bin/gnome-keyring-daemon`
fi
fi
5) Di .bash_logout
# Kill the message bus established for SVN / Keyring communication
if [ ! -z "`kill -0 $DBUS_SESSION_BUS_PID 2>&1`" ]; then
kill $DBUS_SESSION_BUS_PID > /dev/null 2>&1
fi
# Kill the Gnome Keyring Daemon prior to logout.
if [ ! -z "`kill -0 $GNOME_KEYRING_PID 2>&1`" ]; then
kill $GNOME_KEYRING_PID > /dev/null 2>&1
fi
Latar Belakang
Saya mengalami masalah yang sama ketika mencoba untuk membuat cara bebas repot untuk memastikan akses pengguna yang sah ke repo SVN tertentu di tempat kerja. Pada dasarnya kami harus memaksa pemeriksaan kredensial setiap kali pengguna mengakses server sehingga bahkan perintah pembaruan svn akan memerlukan otentikasi. Jelas penyimpanan kata sandi teks polos keluar sehingga dengan sedikit riset saya datang menggunakan gnome-keyring sebagai cara untuk melecehkan basis pengguna kami dengan permintaan otentikasi konstan sambil tetap menjaga pengguna yang tidak sah dari repositori mereka seharusnya tidak memiliki akses untuk melihat.
Sebagian besar pekerjaan kita sehari-hari dilakukan melalui terowongan ssh ke server RedHat tanpa dukungan X jadi saya harus mencari jalan di sekitar dukungan X11. Setelah beberapa pencarian saya berhasil menemukan cara mengatasinya di sini:
Bahan Sumber
http://support.wandisco.com/index.php?/Knowledgebase/Article/View/362/17/how-to-setup-encrypted-svn-password-storage-using-gnome-keyring-in-an-ssh -sidang
Kunci mereka di sini adalah menggunakan collabnet keyring_tool untuk membuat keyring tanpa klien gnome-keyring-manager dan membuat dbus-launch sendiri daripada membiarkan SVN menangani pengaturan. SVN menggunakan DBUS untuk terhubung ke daemon gnome-keyring dan memengaruhi otentikasi keseluruhan. Dengan memulai dan menghancurkan sesi dbus secara manual dengan -sh-syntax Anda menghindari mencoba terhubung ke klien X pada startup dbus. Jika Anda baru saja memulai gnome-keyring-daemon dan mencoba menggunakan SVN, ia masih akan meminta Anda untuk kata sandi keyring Anda, tetapi kemudian akan meminta Anda untuk kredensial SVN Anda juga. Dbus akan gagal ketika SVN mencoba untuk memulainya karena kurangnya klien X; rupanya SVN tidak menggunakan flag khusus ketika memulai dbus.
--login
Opsi (tanpa dokumen?) Ini cukup berguna, meskipun saya yakin tidak ingin menyimpan kata sandi saya yang belum di-hack dalam skrip atau meletakkannya di baris perintah. membaca dalam mode yang tidak dikunci dari dalam skrip (non-shell-bahasa) yang kemudian meneruskan input tersebut ke daemon spawned mungkin akan menjadi cara yang baik untuk melakukan ini. Saya hanya harus memulai proses ini sekali per boot, jadi masuk akal untuk mengetikkan kata sandi; Saya hanya perlu dapat melakukannya di baris perintah alih-alih melalui dialog GTK.