özet
Anahtarlık desteğiyle svn kurulumu ve Collabnet keyring_tool uygulamasını kurmak için gerekli işler Linux sunucularımız için zaten yapılmıştır.
1) SVN istemcisini anahtarlığı kullanacak şekilde yapılandırın:
1.1) ~ / .subversion / config komutunu düzenleyin.
[auth]
password-stores = gnome-keyring
1.2) ~ / aboneliği / sunucuları düzenle
[global]
store-passwords = yes
store-plaintext-passwords = no
2) Şifreniz için bir anahtarlık oluşturun. Anahtarlığın kilidini açmak için yeni bir şifre oluşturmanız istenecektir; bu istediğiniz bir şey olabilir:
keyring_tool --create=svn
3) Yeni anahtarlığı varsayılan olarak ayarlayın:
keyring_tool --setdef=svn
4) .bash_profile veya .bash_login (terminali olarak bash kullandığınızı varsayarsak)
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) .bash_logout'ta
# 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
Arka fon
İş yerinde belirli SVN depolarına yetkili kullanıcı erişimi sağlamak için sorunsuz bir yol kurmaya çalışırken de benzer bir sorunla karşılaştım. Temel olarak, bir kullanıcı sunucuya her eriştiğinde, svn update komutu bile kimlik doğrulama gerektirecek şekilde kimlik kontrolünü zorlamamız gerekiyordu. Açıkça anlaşılır şekilde metin şifresi depolaması açıktı, bu yüzden küçük bir araştırmayla, gnome-keyring'i kullanıcı tabanımızı sürekli kimlik doğrulama talepleriyle taciz etmenin bir yolu olarak kullanmaya başladım ve yetkisiz kullanıcıları görmeye yetişmemeleri gerekiyordu.
Günlük işlerimizin çoğu, ssh tünelleri aracılığıyla RedHat sunucusunda X desteği olan bir XHat sunucusuyla yapıldı, bu yüzden X11 desteği etrafında bir yol bulmalıydım. Bazı araştırmalardan sonra, buradaki yolu bulmayı başardım:
Kaynak malzeme
http://support.wandisco.com/index.php?/Knowledgebase/Article/View/362/17/how-to-setup-encrypted-svn-password-storage-using-gnome-keyring-in-an-ssh -oturum, toplantı, celse
Burada anahtar gnome-keyring-manager istemcisi olmadan bir anahtarlık oluşturmak için Collabnet keyring_tool aracını kullanıyor ve SVN'nin kurulumu yönetmesine izin vermek yerine, dbus-launch'ını kendiniz oluşturmak. SVN, gnome-keyring-daemon'a bağlanmak ve genel kimlik doğrulamasını etkilemek için DBUS'yi kullanır. Dbus oturumunu -sh-sözdizimi ile manuel olarak başlatıp yırtarak dbus başlangıcında bir X istemcisine bağlanmayı denemekten kaçınırsınız. Eğer sadece gnome-keyring-daemon'u başlatıp SVN kullanmaya çalışırsanız, hala sizden anahtarlık şifrenizi isteyecek, ancak sizden sonra SVN kimlik bilgilerinizi de isteyecektir. SVN, X istemcisi olmadığından başlatmaya çalıştığında dbus başarısız olacak; Anlaşılan SVN, dbus’u başlatırken herhangi bir özel bayrak kullanmıyor.
--login
Seçeneği oldukça kullanışlıdır, ancak şifrelenmemiş şifremi bir komut dosyasında saklamak veya bir komut satırına koymak istemem. unhohoed modda (kabuk-olmayan) bir betiğin içinden okumak, daha sonra bu girdiyi doğurulmuş arka plana aktarmak için muhtemelen bunu yapmanın iyi bir yoludur. Bu işlemi önyükleme başına yalnızca bir kez başlatmam gerekiyor, bu yüzden parola yazmak mantıklı; GTK diyalogu yerine komut satırında yapabilmem gerekiyor.