2010-07-02 19 views
5

Ich habe gesucht und gesucht, für was scheint wie Stunden, für eine Lösung für dieses Problem und nichts, was ich versucht habe funktioniert. Lassen Sie mich das alles vorwegnehmen, indem ich sage, dass ich, obwohl ich vorher schon einmal mit * nix gearbeitet habe, ein Noob bin, also bin ich mir sicher, dass ich irgendwo einen Schritt im Setup von Git verpasst habe.Git fragt nach Passwort

Ich habe eine Ubuntu-Box im Netzwerk eingerichtet, um unser neues Git Repo zu hosten. Die Box läuft mit Git, Gitosis und ViewGit. Alles scheint korrekt eingerichtet zu sein, und ich kann mir das Repo ansehen, das ich in ViewGit hinzugefügt habe. Das Problem ist, wenn ich den Repo über TortoiseGit in Windows klonen. Wenn ich die Adresse "[email protected]: /home/git/Plugins/.git/" eintippe, fragt es automatisch nach dem Passwort für den Benutzer "git" auf der Linux-Box. Ich kann diese Adresse von "git @" zu irgendeinem anderen Benutzernamen auf dem System ändern und es wird auch nach dem Passwort für diesen Benutzer fragen. In jedem Fall setzt die Eingabe des Passworts für diesen Benutzer den Klon des Repos auf das lokale System fort. Auch Verzweigungen, Puts und Pulls werden nach einem Passwort fragen, und wenn alles eingegeben wurde, funktioniert alles einwandfrei.

Ich habe die RSA-Pub-Datei in den Windows-Boxen, die ich versucht habe (über die Git-Bash) erstellt und gespeichert sie im Keydir-Ordner von Gitosis, sowie die Benutzer gitosis.conf-Datei (die Name der RSA-Datei minus .pub). Ich habe auch meine sshd_config-Datei so geändert, dass sie "AllowUsers git" und auch meinen Benutzernamen auf dem System enthält. Ich bin ratlos, scheint keine gute Idee zu sein, jedem, der Zugriff auf dieses Repository haben möchte, die Server-IP-Adresse, einen Benutzernamen und dann das Passwort für diesen Benutzernamen zu geben, damit sie Code herunterladen können. Danke für die Hilfe!

Antwort

0

Ging durch genau dasselbe Ding auf meiner Box vor etwa 2 Wochen :) Sie sind 90% des Weg dorthin schon.

Um TortoiseGit zu reparieren, deinstallieren und neu installieren, aber dieses Mal wählen Sie Putty P-Link anstelle von OpenSSH. Dann, wenn Sie zum Projekt schieben oder ziehen, überprüfen Sie die kleine "autoload putty key" Sache.

+0

Das macht eigentlich alles noch schlimmer. Jetzt fragt es nach einem Benutzernamen und einem Passwort, wobei es wie zuvor zumindest den Benutzernamen selbst herausgefunden hat :( – user64718

+0

Außerdem kann ich mit dem Benutzernamen und dem Passwort den Repo nicht mehr herunterladen. – user64718

2

Ich hatte vor kurzem das gleiche Problem: Ich konnte klonen/Push zu meinem gitosis-verwalteten Repo von Cygwin, aber TortoiseGit fragte nach dem Passwort des Git-Benutzers ([email protected]).

Endlich könnte ich es durch Neuinstallation von TortoiseGit funktionieren lassen (Ich wählte die Plink-Option zur Installationszeit), dann in den TortoiseGit Einstellungen gehen Sie zu Netzwerk> SSH Client und ändern Sie den Wert auf Ihre Cygwin ssh binary (dh C: \ cygwin \ bin \ ssh.exe).

Durch die Änderung konnte ich alle Operationen von TortoiseGit ausführen, und ich werde nach dem Passwort gefragt, den SSH-Schlüssel, den ich auf Cygwin definiert habe.

Überprüfen Sie auch, dass Ihr gitosis.conf die öffentlichen Schlüssel enthält, die Cygwin sichtbar sind, die „PUB“ Erweiterung entfernen: wenn meine Cygwin zeigt installieren, die ich myuser @ myhost, der zugehörige Eintrag auf gitosis bin conf sollte myuser @ myhost und die Datei mit dem öffentlichen Schlüssel sein sollte keydir/[email protected]

0

allererst auf sein, die URL Sie ein Git-Repo verwenden für das Klonen git sein könnte + ssh wie in Ihrem Beispiel, http/https, oder verschiedene andere Dinge. Sowohl SSH als auch HTTP sind sehr gebräuchlich, und Benutzer verwenden häufig SSH für authentifizierte Benutzer, die zum Repo übergehen können, und HTTP für andere Benutzer, die zwar klonen und ziehen können, aber normalerweise keine Push-Vorgänge durchführen können sie können nach drängen. Wenn Sie Ihr Repository in ViewGit anzeigen können, können Sie wahrscheinlich eine HTTP-URL für Ihr Repository abrufen, die Sie verwenden können, ohne sich beim Klonen oder Ziehen anzumelden.

Nun, wenn Sie mit SSH fortsetzen möchten, gibt es zwei Dinge, die Sie benötigen, betrachten:

Sie müssen sich mit dem Server verbinden können SSH verwenden, ohne ein Passwort einzugeben. Wenn Sie Cygwin SSH verwenden, sollten Sie in der Lage sein

ssh [email protected] 

zu tun und zu dieser Maschine verbinden, ohne nach einem Passwort gefragt wird. Wenn Sie PuTTY verwenden, sollten Sie in der Lage sein, PuTTY zu öffnen, den Hostnamen einzugeben und nach einem Benutzernamen gefragt werden, aber dann ohne ein Passwort zu verbinden (oder die entsprechende Putty-Befehlszeile verwenden). Beachten Sie, dass, wenn Sie dies erfolgreich tun, eines von zwei Dingen passieren kann. Entweder Sie erhalten eine normale Shell auf diesem Rechner als Git-Benutzer. Oder Sie sehen eine kurze Nachricht, etwa wie "SSH ist richtig eingerichtet für die Verwendung von Git." und die Verbindung wird sofort geschlossen.

Wenn Sie dies nicht tun können, müssen Sie Ihren öffentlichen Schlüssel auf dem Git-Server einrichten und Ihren privaten Schlüssel in den Speicher in Ihrer Windows-Box laden. Ersteres wird wahrscheinlich durch Gitosis gemacht. Für Letzteres verwenden Sie Pageant (wenn Sie Putty verwenden) oder ssh-add, wenn Sie cygwin ssh verwenden. Wenn Sie möchten, können Sie zunächst einen Schlüssel ohne Passphrase verwenden. Dadurch wird der Schritt entfernt, in dem Sie den Schlüssel manuell laden und die Passphrase eingeben müssen. Bis Sie sich per SSH ohne Passwort verbinden können, gehen Sie nicht zum nächsten Schritt.

Die zweite Sache, die Sie tun müssen, ist zu konfigurieren, was ssh Ihr Git Client verwendet und wie. Wenn Sie wie oben beschrieben eine Verbindung herstellen können, aber Ihr Git-Client keine Verbindung herstellen kann oder keine Verbindung ohne Klon herstellen kann, müssen Sie dies einrichten.

Die Grundidee ist, dass Sie TortoiseGit genau sagen, was die Befehlszeile für ssh zum Git-Server ist. Möglicherweise müssen Sie Dinge wie PATH und Umgebungsvariablen überprüfen, um sicherzustellen, dass TortoiseGit genau repliziert, wie Sie mit ssh eine Verbindung herstellen. Diese Antwort https://stackoverflow.com/a/11249914/1737957 gibt die Grundidee.

Verwandte Themen