Ich habe Probleme mit Gitlab. Ich habe die folgende Anleitung verwendet, um Gitlab https://github.com/gitlabhq/gitlab-recipes/blob/master/install/centos/README.md zu installieren und zu konfigurieren . Die Installation schien gut zu laufen. Die Webanwendung scheint gut zu funktionieren. Ich kann jedoch nicht klonen, ziehen, pushen, im Grunde kann ich Gitlab nicht verwenden. Ich habe 403 Fehler mit HTTP gesehen und die Berechtigung wurde verweigert, als versucht wurde, über SSH zu klonen.
Ich habe sichergestellt, dass meine privaten Schlüssel sowohl unter Windows als auch unter OS X korrekt eingerichtet sind. Ich kann die öffentlichen Schlüssel auf dem Server sehen. Ich habe meiner Konfigurationsdatei in ~ / .ssh.config Folgendes hinzugefügt
Host {hostname}
User git
Hostname {hostname}
PreferredAuthentications publickey
IdentityFile C:/Users/{username}/.ssh/id_rsa
Das sehe ich in / var / log / Secure
Jan 14 17:31:48 dev_version_control sshd[3696]: Connection closed by 192.168.17.113
Jan 14 17:32:18 dev_version_control sshd[3700]: Connection closed by 192.168.17.113
Das /var/log/message
hat keine Rolle gespielt, als ich versucht habe, git oder ssh zu verwenden
Ich bin mir nicht sicher, wohin ich von hier aus gehen soll. Irgendwelche Vorschläge?
Ich weiß nicht, was Sie mit SSH unter Verwendung des Git-Benutzernamens meinen. In dem von mir verwendeten Handbuch wurde kein Kennwort für den Git-Benutzer erstellt und angegeben, dass der Benutzer nicht zum Anmelden verwendet werden kann.
Antworten:
Vorausgesetzt, Sie haben Ihren privaten Schlüssel auf Ihren Client geladen, scheint dies ein Berechtigungsproblem für das Benutzerverzeichnis 'git' und das Verzeichnis .ssh zu sein.
Bitte versuchen Sie, Ihr Verzeichnis / home / git in eine Maske von 0711 zu ändern:
Stellen Sie sicher, dass das Verzeichnis /home/git/.ssh die Maske 0700 hat:
Stellen Sie sicher, dass die Datei /home/git/.ssh/authorized_keys eine Maske von 0600 hat:
Ersetzen Sie / home / git durch ein beliebiges Home-Verzeichnis für den Benutzer 'git', sofern dies im Lernprogramm anders war. Wenn es keine Berechtigungen sind, lassen Sie bitte einen Kommentar und wir werden sehen, was sonst das Problem sein könnte.
quelle
https://username:[email protected]/repo.git
)/home/git/.ssh/authorized_keys
Stellen Sie sicher, dass Sie nur einen Datensatz für Ihren öffentlichen Schlüssel (der über das Webface importiert wurde) haben und dieser Schlüssel das Präfix und den Titel von gitlab hat. Mit anderen Worten, wenn Sie denselben Schlüssel vor der Installation von gitlab manuell hinzugefügt haben, entfernen Sie ihn.quelle
Ich würde auch empfehlen zu überprüfen, ob der Benutzer die richtige Berechtigung zum Klonen / Ziehen / Pushen von Gitlab hat. Ich habe einfach zu viel Zeit damit verbracht, ssh / https-Konfigurationen durchzusehen, als der Grund für das Problem darin bestand, dass Benutzer in gitlab nicht über genügend Berechtigungen verfügten ...
quelle
In meiner Situation habe ich gitlab über FreeBSD-Pakete installiert. Gitlab SSH hat nicht funktioniert. Die Ursache dafür war ein falsches Home-Verzeichnis für git: (vipw)
Ich habe dies geändert in:
quelle
Dies kann passieren, wenn der Host ein '-' im Namen hat. (Auch wenn dies gemäß RFC 952 legal ist .)
ssh fordert mich zur Eingabe eines Kennworts für jeden Host auf, dessen Name zufällig ein '-' enthält. Dies scheint ein reines Problem beim Parsen von SSH-Konfigurationsdateien zu sein, da das Problem durch Hinzufügen eines Alias zu ~ / .ssh / config (und Verwenden dieses Alias in meinen Git-Remote-URLs) behoben wurde.
Mit anderen Worten, versuchen Sie, Folgendes in Ihr C einzufügen: / Users / {Benutzername} /. Ssh / config
und wo Sie eine Fernbedienung des Formulars haben
Entfernen Sie es und fügen Sie es mithilfe des Formulars erneut hinzu
quelle
Wenn Sie Umgebungsvariablen zum Übergeben des Schlüssels verwenden, sollten Sie diese mit base64 codieren. Andernfalls schlagen sie wahrscheinlich fehl, wenn Sie nach Ihrer Passphrase gefragt werden. Dies bedeutet, dass der Schlüssel beschädigt ist. Wenn du siehst:
Dann codiert base64 die Variable SSH_PRIVATE_KEY. Wenn Sie unter OS X arbeiten,
verschlüsselt es und kopiert es in Ihre Zwischenablage. Ändern Sie nun die Skriptzeile .gitlab-ci.yml in
quelle
Laufen hat
eval $(ssh-agent)
mein Problem behoben.quelle
Mein Problem war, dass die von puttygen erstellte und gespeicherte private Schlüsseldatei id_rsa ein anderes Format hat als die von einem Ubuntu-Computer erstellte. Nachdem ich ein Paar Schlüssel von einem Ubuntu-Computer erstellt habe, kopieren Sie diese Dateien zurück auf den Windows-Computer im Ordner% UserProfile% .ssh und fügen Sie den neu generierten öffentlichen Schlüssel zu Gitlab hinzu. Keine Erlaubnis mehr für mich verweigert
quelle