2010-12-14 3 views
3

Ich habe Git verwendet, um ein Repository eines Projekts auf einem separaten Server zu speichern. Derzeit zu schieben Dinge in das Repository nach einem befiehlt ich tueVerwalten von Git-Benutzern und Passwörtern

git push 

und dann bin ich für das Passwort für das Konto, das ich die git-Repository-Setup auf dem Remote-Server verwendet gefragt. Da es eine Weile her ist, seit ich das Repository eingerichtet habe, bin ich mir nicht sicher, wie ich dieses Passwort entweder entfernen (schlechte Idee) oder Benutzerkonten für das Git-Repository ändern/hinzufügen kann. Ich bin mir sicher, dass es etwas Einfaches ist, aber ich habe Schwierigkeiten damit zu googeln. Gibt es ein Argument, das mir für den Push-Befehl fehlt?

Danke.

Antwort

5

Es gibt wahrscheinlich einige Duplikate hier auf SO, aber ich habe sie nicht zuerst Suche gesehen, also hier ist Ihre schnelle Antwort.

Sie möchten wahrscheinlich SSH Public/Private Keypair-Authentifizierung verwenden. Im Allgemeinen bedeutet dies, dass ssh-keygen auf Ihrem lokalen Computer ausgeführt wird (falls nicht schon vorher) und dann ssh-copy-id [email protected] verwendet wird, um Ihren öffentlichen Schlüssel auf die Fernbedienung zu kopieren. (Wenn Sie ssh-copy-id nicht haben, können Sie einfach Ihren öffentlichen Schlüssel zu .ssh/authorized_keys auf der Fernbedienung hinzufügen; das ist alles.) Achten Sie darauf, den öffentlichen Schlüssel dem entsprechenden Benutzer (dem mit Berechtigungen für den Git-Repo) zu geben.

Wenn Sie sicherer sein möchten, können Sie Ihrem Schlüsselpaar eine Passphrase geben und so etwas wie ssh-agent oder keychain verwenden, um es für eine Sitzung zu speichern. Weitere Informationen hierzu finden Sie unter Configuring Git over SSH.

Wenn du viel davon machst, solltest du vielleicht in gitolite suchen, das viele dieser git-Admin-Typen automatisiert. Wenn Sie dies weiterhin manuell tun und anderen die Möglichkeit geben, diesen Repo zu verwenden, möchten Sie vielleicht die Shell des Repo-Benutzers git-shell machen, die im Wesentlichen eine Shell ohne Login ist, die nur die notwendigen git-Befehle ausführen kann .