Zusammenfassung
Die erforderlichen Aufträge für die Installation von svn mit Schlüsselringunterstützung und die Installation der Anwendung Collabnet keyring_tool werden für unsere Linux-Server bereits ausgeführt.
1) Konfigurieren Sie den SVN-Client für die Verwendung des Schlüsselrings:
1.1) Edit ~ / .subversion / config
[auth] password-stores = gnome-keyring
1.2) Bearbeiten Sie ~ / .subversion / Server
[global] store-passwords = yes store-plaintext-passwords = no
2) Erstellen Sie einen Schlüsselbund für Ihr Passwort. Sie werden aufgefordert, ein neues Passwort zu erstellen, um den Schlüsselbund zu entsperren. Dies kann alles sein, was Sie wünschen:
keyring_tool --create=svn
3) Legen Sie den neuen Schlüsselring als Standard fest:
keyring_tool --setdef=svn
4) In .bash_profile oder .bash_login (vorausgesetzt, Sie verwenden bash als Terminal)
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) In .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
Hintergrund
Ich hatte ein ähnliches Problem, als ich versuchte, einen problemlosen Weg zu finden, um den Zugriff berechtigter Benutzer auf bestimmte SVN-Repos bei der Arbeit sicherzustellen. Grundsätzlich mussten wir die Berechtigungsnachweise jedes Mal erzwingen, wenn ein Benutzer auf den Server zugreift, sodass selbst der Befehl svn update eine Authentifizierung erfordert. Die Speicherung von Klartextkennwörtern war eindeutig nicht verfügbar. Daher kam ich mit ein wenig Nachforschungen dazu, den gnome-keyring zu verwenden, um unsere Benutzerbasis mit ständigen Authentifizierungsanfragen zu belästigen und gleichzeitig unberechtigte Benutzer aus Repositorys zu entfernen, auf die sie keinen Zugriff haben sollten.
Ein Großteil unserer täglichen Arbeit erfolgt über SSH-Tunnel in einen RedHat-Server ohne X-Unterstützung, daher musste ich einen Weg finden, den X11-Support zu umgehen. Nach einigem Suchen fand ich hier den Weg:
Quellenmaterial
http://support.wandisco.com/index.php?/Knowledgebase/Article/View/362/17/how-to-setup-encrypted-svn-password-storage-using-gnome-keyring-in-an-ssh -Session
Der Schlüssel ist hier die Verwendung des Collabnet keyring_tool, um einen Schlüsselring ohne den gnome-keyring-manager-Client zu erstellen, und den dbus-Launch selbst zu erstellen, anstatt dass SVN das Setup übernimmt. SVN verwendet DBUS, um eine Verbindung zum gnome-keyring-daemon herzustellen und die allgemeine Authentifizierung zu beeinflussen. Indem Sie die dbus-Sitzung mit -sh-Syntax manuell starten und herunterfahren, vermeiden Sie beim dbus-Start die Verbindung zu einem X-Client. Wenn Sie nur den gnome-keyring-daemon starten und versuchen, SVN zu verwenden, werden Sie zwar noch nach Ihrem Schlüsselringkennwort gefragt, dann aber auch nach Ihren SVN-Anmeldeinformationen. Der dbus schlägt fehl, wenn SVN versucht, ihn zu starten, da kein X-Client vorhanden ist. anscheinend verwendet SVN beim Starten des dbus keine speziellen Flags.