2012-08-01 6 views
16

Ich versuche GitLab auf meinem Server laufen zu lassen. Ich habe die Installationsanleitung auf der gitlab github-Seite befolgt und alles ist gut gelaufen.GitLab benötigt git @ localhost Passwort, um zu einem Repo zu gelangen

Das Problem ist, wenn ich einen Repo- und versuchen erstellen zu

sudo git push -u origin master 

ich aufgefordert bin für ‚git @ localhost das Kennwort:‘

Der git Benutzer kein Passwort haben, so dass diese ist ein Problem.

Andere Leute, die auf dieses Problem gestoßen sind, haben vorgeschlagen, Git zu AllowedUsers in meinem sshd conf hinzuzufügen, aber ich habe kein AllowedUsers-Feld darin, so dass das kein Problem zu sein scheint.

Ich bin immer noch ziemlich neu zu ssh Zeug, so glaube ich, es ist eine Art von SSH-Schlüssel Problem, obwohl ich versucht, alle relevanten SSH-Schlüssel zu /home/git/.ssh/authorized_keys hinzugefügt und verifiziert, dass es keine Linie gibt bricht in der Datei.

Gerade FYI, installieren mein geht vollständig den Test im Gitlab Wiki zur Verfügung gestellt:

sudo -u gitlab bundle exec rake gitlab:app:status RAILS_ENV=production 

Irgendwelche Vorschläge zu schätzen!

EDIT

So habe ich endlich diese um nur um von einer anderen Maschine zu einem Repo begehen. So wie ich war, wurde ich in dieselbe Maschine geschickt, auf der gitlab lief. Sobald ich versuchte, mich von einer anderen Maschine als dem Host zu verpflichten, funktionierte das großartig. Also, das mag für einige Leute eine Lösung sein (das ist für uns, da wir auf getrennten Maschinen als unsere Server entwickeln).

Dies ist immer noch ein unbefristetes Problem für alle, die versuchen, auf der gleichen Maschine zu hosten und zu entwickeln, die darin aufgetreten ist.

+0

neue Fragen ist http: // Stackoverflow. com/questions/15495843/gitlab-git-user-password –

+0

Du solltest 'sudo' nicht mit' git push' verwenden – StenSoft

Antwort

3

Wenn die Installation erfolgreich war, bedeutet dies, dass Ihr gitlab in der Lage ist, das gitolite-admin Repo ohne Problem zu klonen.
Aber Sie sagen, dass es die Statusüberprüfung besteht, was bedeutet, dass Sie für die ssh-Verbindung ein Konto namens "gitlab" verwenden.

Das bedeutet auch, dass jeder Client ssh mit demselben Konto 'gitlab', nicht 'git' muss.
Also, wenn Ihr SSH-Schlüssel wurde durch die Gitlab Schnittstelle hinzugefügt worden ist, dann können Sie Klon/git push zu einem Remote-Name Herkunft git, der die Adresse ‚[email protected]

Um mehr zu debuggen Besuche haben würde einige andere Tipps in „Setup Git Remote SSH (git-upload-pack/git-receive-pack)“ erwähnt:

Wenn Sie nicht lokal schieben können (auf dem Server selbst, ist, dass auf ‚localhost‘), versuchen Sie, mindestens ein:

ssh -vvvT [email protected] 

Es kein Passwort erfordern sollte, da /home/gitlab/.ssh/id_rsa und /home/gitlab/.ssh/id_rsa.pub beide existieren.

+0

Hi VonC, danke für deine Hilfe hier. Nur um zu überprüfen, ich bin SSHed in den Server-Rechner unter einem anderen Konto als gitlab (der Benutzername ist devin). ssh -vvvT gitlab @ localhost erfordert leider ein Passwort. Ich habe nicht versucht, einen Schlüssel über die Schnittstelle hinzuzufügen, da ich keine Option bemerkt habe, dies auf gitlab zu tun. Lassen Sie mich wissen, wenn Sie weitere Vorschläge haben. Danke! – DevinR

+0

@DevinR Wenn Sie ssh ausprobieren, ohne zuerst Ihren öffentlichen Schlüssel hinzugefügt zu haben, ist es normal, dass ssh nach einem Passwort fragt: Es sucht nach Ihrem Pub-Schlüssel in ~ gitlab/.ssh/authorized_keys und findet es nicht. Sie müssen einen öffentlichen/privaten Schlüssel generieren (wie in http://stackoverflow.com/a/10921120/6309) und den öffentlichen Schlüssel in Ihre gitlab-Kontoseite kopieren. – VonC

+0

Ich habe jetzt einen Benutzer auf gitlab generiert und meinen ssh-Schlüssel dort hinzugefügt. Ich habe auch den Schlüssel zu /home/gitlab/.ssh/authorized_keys und /home/git/.ssh/authorized_keys hinzugefügt. Leider habe ich immer noch das gleiche Problem. Danke nochmal für deine Hilfe. – DevinR

0

Ich stieß auf ein Problem, das ähnliche Symptome zeigte. Mein Problem war, dass ich zwei Computer hinter einem Router habe. Der Router ist so eingestellt, dass er SSH-Verkehr (Port 22) an Computer 1 weiterleitet. Gitlab ist auf Computer 2 installiert. Ich verwende eine Domäne und eine öffentlich zugängliche IP, um eine Verbindung herzustellen. Wenn ich drücke, wird der SSH-Verkehr zu Computer 1 geleitet.Es gibt einen git Benutzer auf Computer 1 einfach von git installiert zu haben. Computer 1 fordert mich auf, das Passwort des Git-Benutzers einzugeben.

Meine Installation hat auch alle fertigen Prüfungen bestanden.

Ich bin mir nicht sicher, ob Sie das gleiche Problem haben, aber die Symptome sind die gleichen, so dass ich dachte, dies könnte helfen.

0

Dies begann in letzter Zeit ziemlich oft - für Arbeitsprojekte git würde mich fragen, meine E-Mail-Adresse und Passwort. Wenn es eingegeben wird, geht es in Ordnung, aber es ist ärgerlich.

Ich kann dieses Problem beheben für jede Anwendung, die ich Zugriff auf mit:

git config remote.origin.url [email protected]:user_org_or_co/repo_name_itself 

z.B.

git config remote.origin.url [email protected]:smithw/bookmarkapp 
0

Ihre Git und Gitlab Benutzer sind passwortlos?

Wie ist die sshd_config?

überprüfen, ob diese Zeile in der Datei ist: PermitEMptyPassword Yes

Auf jeden Fall denke ich, es unsicher, in meiner Installation, habe ich dieses ‚Ja‘, Klon und dann die alte Konfiguration halten ... Wenn Klonen der ssh_key wird von Benutzer Git gespeichert, und es Passwort nicht mehr fragen ..

Aber jetzt, ich renne in einen anderen Fehler, wenn ich gehe, für jeden neuen Benutzer, müssen wir ssh für die Erlaubnis leer push und neu zu konfigurieren dann behalte die Konfiguration bei.

(ich habe immer noch diese Methode nicht getestet, weil ich, dass mein Gitlab nicht die repos in git Benutzern erstellen herausgefunden: /)

4

TL; DR

Keys Speicher auf Sowohl Gitlab DB als auch Gitolitenseite. Sie sollten den werkseitigen Ordner gitolite-admin.git verwenden, verwenden Sie kein Backup! Und die Schlüssel für gitolite später mit dem Befehl update keys wiederherstellen. (aktualisieren diese Schlüssel bereits in der Gitlab db gespeichert gitolite)

sudo -u gitlab -H bundle exec rake gitlab:gitolite:update_keys RAILS_ENV=production 

Höchstwahrscheinlich ist es, weil es etwas Ausgabe über die gitolite Schlüssel nicht speichern richtig ist. Diese Keys (zum Login) werden eigentlich separat von gitlab & gitolite gehalten. Zum Ziehen/Drücken werden die im Gitolit gespeicherten Tasten verwendet. (git/Repositories/gitolite-admin.git/index, git/.gitolite/keydir, git/.ssh/authorized_keys)

Gitlab normalerweise beim Speichern dieser importierten Schlüssel auf Web zu den gitolite Dateien helfen sollte. Aus einigen Gründen ist es jedoch fehlgeschlagen. Da die Schlüssel nicht ordnungsgemäß in Gitolite gespeichert werden, kann der Client/Server die Schlüssel nicht verwenden und auf das Kennwort zurückgreifen.

Sie müssen die in Gitolite gespeicherten Schlüssel überprüfen und korrigieren, um die Probleme zu beheben.

Check-out für mehr https://groups.google.com/forum/?fromgroups=#!topic/gitlabhq/X0z_9l7L7A8

0

Dies kann zu einfach sein, aber ich hatte das gleiche Problem. Ich nehme an, es liegt daran, dass es localhost als Domain-Namen aufgenommen hat.

Es funktionierte, als ich von einem anderen Computer auf meine localhost Maschine angemeldet zurück und versuchte dann zu begehen. Es ist ziemlich dumm, aber einen Versuch wert.

2

erhielt ich die gleiche Passwort-Eingabeaufforderung. Mein Problem war, dass ich die ssh-Nutzung auf nur ein paar Benutzer beschränkt hatte. Ich habe den Git-Benutzer der AllowUsers-Liste sshd_config hinzugefügt, und alles hat super funktioniert.

1

Stellen Sie sicher, Ihre Gitlab Profil Ihren öffentlichen SSH-Schlüssel hat. Melde dich bei gitlab an, gehe zu deinem Profil und wähle den Button "Öffentlichen Schlüssel hinzufügen". Kopieren und fügen Sie den Inhalt "keyfile" .pub in das Feld Schlüssel ein. Es gab einige Versionen von Gitlab, die einen Fehler hatte, dass, wenn Sie Ihren öffentlichen Schlüssel nicht hinzugefügt haben, es nicht die authorized_keys-Datei aktualisiert wurde. Überprüfen Sie (aber fügen Sie nicht manuell hinzu), dass sich Ihr öffentlicher Schlüssel in der Datei authorized_keys befindet, nachdem Sie sie zu Ihrem Profil hinzugefügt haben. Wenn dies nicht das Problem ist, wird vielleicht eine der früheren Antworten helfen.

1

auf dem git-Server bearbeiten /etc/ssh/sshd_config

Kommentar- der folgenden Zeilen unter dem Authentifizierungs-Abschnitt oder sie hinzufügen:

PubkeyAuthentication yes

AuthorizedKeysFile %h/.ssh/authorized_keys

geben Sie Ihrem Server einen Zyklus Leistung und dann feuern Gitlab

+1

"geben Sie Ihrem Server einen Power-Zyklus" scheint übermäßig - nur sshd neu starten. –

0

ich habe mit diesem verwechselt Zeit. Wenn Sie sudo git verwenden, bedeutet dies, dass der Git als Root gestartet wird. Die Frage wäre - hast du einen SSH-Schlüssel für root erstellt und in Gitlab abgelegt?

Ich vermute, dass Sie Ihren SSH-Schlüssel ohne sudo erstellt haben (was für Ihr normales Konto ist), setzen Sie den SSH-Publickey in Gitlab, und führen Sie dann sudo git.

können Sie versuchen, git laufen ohne sudo. Und wenn Sie Probleme mit Ordnerberechtigungen haben, durch die Sie sudo an erster Stelle verwenden konnten, versuchen Sie, Ihrem Benutzerkonto Zugriff auf diesen Ordner zu gewähren. Oder versuch das git normalerweise in einem Ordner mit Schreibberechtigung.

0

Es gibt ein Häkchen dafür here.

Um die Ursache des Problems zu ermitteln, überprüfen Sie die Protokolle auf dem Server über sudo grep sshd /var/log/auth.log.

Bis zum 13. Dezember 2013 b24d5d begeht, wurde das Problem auf der Vagrant Entwicklungsmaschine verursacht durch Überschuss von Berechtigungen für .ssh/.Sie müssen haben:

chmod 700 ~/.ssh 
chmod 600 ~/.ssh/authorized_keys 

oder ssh weigert sich, die rsa Verbindung herzustellen und sudo grep sshd /var/log/auth.log sagt:

Authentication refused: bad ownership or modes for file /home/git/.ssh/authorized_keys  

Das Problem, indem sshd nicht sctrict Modus für die Entwicklung gelöst wurde, so dass es zu Richtig laufen auch wenn die Berechtigungen zu frei sind.

0

Ich lief in das gleiche Problem vor kurzem, und entdeckte, dass die Frage für mich war, dass SELinux sshd den Zugriff auf die authorized_keys Datei in Gitlab Datenverzeichnis /var/opt/gitlab/ wurde verhindert.

Um dies zu beheben, bearbeiten /etc/selinux/targeted/contexts/files/file_contexts.homedirs und fügen Sie die Zeile:

/var/opt/gitlab/\.ssh/.* system_u:object_r:ssh_home_t:s0 

Dann laufen:

$ restorecon -Rv /var/opt/gitlab 

Quelle: https://serverfault.com/questions/50573/selinux-preventing-passwordless-ssh-login

0

Dies bedeutet, dass die Gitlab SSH-Server nicht richtig konfiguriert wurde . dass

bearbeiten /etc/ssh/sshd_config und versichern:

PasswordAuthentication no 
ChallengeResponseAuthentication no 

Dies sollte SSH-Schlüssel nur Logins erzwingen, die auch eine gute Sicherheitsmaßnahmen ist. Viele neuere Distributionen haben dies bereits standardmäßig aktiviert.

Fragen Sie mich nicht, wenn Sie draußen abgesperrt werden, SO ist nicht der richtige Ort, um zu fragen, wie man ein privates/öffentliches Schlüsselpaar konfiguriert und benutzt.

0

Für alle, die dieses Problem mit Bitnami oder einer anderen Konfiguration haben, die es schnell beheben möchten, verwenden Sie stattdessen den vollständigen Pfad.

git clone [email protected]_adress:/full/path/to/project.git 

bearbeitet: Ich vergaß zu erwähnen, ist es sehr wichtig zu überprüfen, ob Sie den SSH-Schlüssel zu git-Labor über die Web-Seite hinzugefügt haben ..

+0

Dies sah vielversprechend aus, fragt aber jetzt nach dem Passwort mit der Serveradresse – pal4life

Verwandte Themen