Ich suchte nach einer Möglichkeit, Anmeldeinformationen sicher zu speichern, während eine Verbindung zu unserem Git-Server hergestellt wird, der SSL verwendet. Ich bin auf diesen Vorschlag von @ james-ward gestoßen (nur die von mir vorgenommenen Änderungen betrafen die Aktualisierung unserer "System" -Konfiguration anstelle unserer "globalen" Konfiguration für Git ( https://stackoverflow.com/a/14528360/6195194 )
Sudo apt-get install libgnome-keyring-dev
cd /usr/share/doc/git/contrib/credential/gnome-keyring
Sudo make
git config --system credential.helper /usr/share/doc/git/contrib/credential/gnome-keyring/git-credential-gnome-keyring
Ich kann dann rennen
git clone https://ipaddress/git/repo.git
und der Anmeldeinformations-Helfer speichert meine Anmeldeinformationen, wenn ich jedoch Folgendes ausführe:
Sudo git clone https://ipaddress/git/repo.git testfolder
es gibt mir den folgenden Fehler
** (process:3713): CRITICAL **: Error communicating with gnome-keyring-daemon
Manchmal muss ich Sudo git clone ausführen, da dies manchmal für das Verzeichnis erforderlich ist, in dem ich einen Klon erstellen möchte. Jede Hilfe wäre dankbar.
Versionen, die ich verwende: - Git-Version 1.9.1 - Ubuntu Server 14.0.4
Danke im Voraus! -Richard O.
Ich muss manchmal Sudo git clone ausführen, da manchmal das Verzeichnis, in dem ich einen Klon erstellen muss, dies erfordert. Jede Hilfe wäre dankbar
Der Ordner, in dem Sie versuchen, das Repository zu klonen, wurde von root erstellt, sodass Sie keine Berechtigung zum Schreiben oder Erstellen eines Ordners darunter haben, es sei denn, Sie sind root (Sudo
), legen die Berechtigungen (chmod
oder chown
) fest und können dies tun klonen Sie in den Ordner.
chmod 755 /path
Beachten Sie neben der Verwendung von Sudo, dass libgnome-keyring
in 2016 spezifisch für GNOME ist und nun veraltet ist (seit Januar 2014, eigentlich ).
Git 2.11+ (4. Quartal 2016) enthält einen neuen Hilfsmittel-Assistenten, der libsecret
verwendet.
Siehe commit 87d1353 (09 Oct 2016) von Mantas Mikulėnas (grawity
) .
(Zusammengeführt von Junio C Hamano - gitster
- in commit bfe800c , 26 Okt 2016)
contrib/credential/
wurde ein neuer Helfer für Anmeldeinformationen hinzugefügt, der über Implementierungen der XDG Secret Service API über "libsecret" spricht.es verwendet
libsecret
, das andere Implementierungen von XDG Secret .__ unterstützen kann. Service-API.
Sie können libsecret
und die Entwicklungsbibliotheken installieren mit:
Sudo apt-get install libsecret-1-0 libsecret-1-dev
Dann müssen Sie den Anmeldeinformations-Manager erstellen
cd /usr/share/doc/git/contrib/credential/libsecret
(kopiere den credential/libsecret Ordner von source , falls er nicht automatisch installiert wird)
Sudo make
Schließlich sollten Sie git auf die neu erstellte Datei in Ihrer Konfiguration zeigen:
git config --global credential.helper /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret
Wie von mati865 in den Kommentaren bemerkt:
Es sei darauf hingewiesen, dass einige Distributionen wie Arch und Fedora sowohl Binär- als auch Quell-Helfer zur Verfügung stellen.
- Libsecret-Binary auf Arch:
/usr/lib/git-core/git-credential-libsecret
und- Libsecret-Binärcode bei Fedora:
/usr/libexec/git-core/git-credential-libsecret
.
Mit Sudo
wird der Befehl als root ausgeführt. Es ist, als ob Sie Ihren Sysadmin fragen sollten, falls Sie einen haben, um einen Befehl für Sie auszuführen. Der Benutzer root
ist nicht für entwicklungsbezogene Zwecke gedacht und daher git
nicht als root.
Wenn Sie einen Befehl als anderer Benutzer ausführen (root oder ein anderer Benutzer), wird erwartet, dass dieser andere Benutzer nicht normal mit Ihrem normalen Benutzer kommunizieren kann (insbesondere findet er Ihren gnome-keyring-daemon hier nicht).
Die Antwort lautet also: "Tu das nicht". Wenn Sie wirklich in einem bestimmten Verzeichnis klonen müssen, geben Sie sich Berechtigungen für dieses Verzeichnis, wie in der Antwort des CodeWizard vorgeschlagen. Wenn Sie in einem Verzeichnis klonen müssen, in dem Sie keine Berechtigung haben, sollten Sie sich fragen, ob Sie etwas falsch machen: Dies sollte grundsätzlich nicht passieren (ich schätze, Sie haben Sudo
in der Vergangenheit zu oft verwendet Dies ist der Grund, warum Sie hier und da umschreibbare Verzeichnisse haben.