
Ich habe Probleme mit Gitlab. Ich habe die folgende Anleitung zur Installation und Konfiguration von Gitlab verwendethttps://github.com/gitlabhq/gitlab-recipes/blob/master/install/centos/README.md. Die Installation schien gut zu verlaufen. Die Webanwendung scheint einwandfrei zu funktionieren. Allerdings kann ich nicht klonen, ziehen oder pushen, im Grunde kann ich Gitlab nicht verwenden. Beim Versuch, über SSH zu klonen, habe ich 403-Fehler mit HTTP und verweigerter Berechtigung gesehen.
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
Dies ist, was ich in /var/log/secure sehe
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 nicht funktioniert, als ich versucht habe, Git oder SSH zu verwenden
Ich bin nicht sicher, wie es weitergehen soll. Irgendwelche Vorschläge?
Ich weiß nicht, was Sie mit SSH unter Verwendung des Git-Benutzernamens meinen. In der Anleitung, die ich verwendet habe, wurde kein Kennwort für den Git-Benutzer erstellt und es wurde angegeben, dass dieser Benutzer nicht zum Anmelden verwendet werden kann.
Antwort1
Vorausgesetzt, Sie haben Ihren privaten Schlüssel auf Ihren Client geladen, klingt es so, als ob es sich hier um ein Berechtigungsproblem im Stammverzeichnis des Git-Benutzers und im SSH-Verzeichnis handeln könnte.
Bitte versuchen Sie, Ihr /home/git-Verzeichnis auf die Maske 0711 zu ändern:
chmod 0711 /home/git
Stellen Sie sicher, dass das Verzeichnis /home/git/.ssh die Maske 0700 hat:
chmod 0700 /home/git/.ssh
Stellen Sie sicher, dass die Datei /home/git/.ssh/authorized_keys die Maske 0600 hat:
chmod 0600 /home/git/.ssh/authorized_keys
Ersetzen Sie /home/git durch Ihr Home-Verzeichnis für den „git“-Benutzer, falls es im Tutorial anders war. Wenn es nicht an den Berechtigungen liegt, hinterlassen Sie bitte einen Kommentar und wir werden sehen, was sonst das Problem sein könnte.
Antwort2
Überprüfen Sie, dass Sie nur einen Eintrag für Ihren öffentlichen Schlüssel haben (der über die Webseite importiert wurde) /home/git/.ssh/authorized_keys
und dass 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.
Antwort3
Ich würde auch empfehlen, zu prüfen, ob der Benutzer die erforderlichen Berechtigungen zum Klonen/Pullen/Pushen in Gitlab hat. Ich habe einfach zu viel Zeit damit verbracht, SSH-/HTTPS-Konfigurationen durchzusehen, obwohl der Grund für das Problem darin lag, dass der Benutzer in Gitlab nicht über ausreichende Berechtigungen verfügte ...
Antwort4
Dies kann passieren, wenn der Host ein '-' im Namen hat. (Obwohl dies lautRFC 952.)
ssh fordert mich zur Eingabe eines Passworts für jeden Host auf, der zufällig ein '-' im Namen hat. Dies scheint lediglich ein Problem beim Parsen der ssh-Konfigurationsdatei zu sein, da das Hinzufügen eines Alias zu ~/.ssh/config (und die Verwendung dieses Alias in meinen Git-Remote-URLs) das Problem gelöst hat.
Mit anderen Worten versuchen Sie, etwas wie das Folgende in Ihre C:/Users/{username}/.ssh/config einzugeben
Host {a}
User git
Hostname {a-b.domain}
IdentityFile C:/Users/{username}/.ssh/id_rsa
und wo Sie eine Fernbedienung der Form haben
origin [email protected]:repo-name.git
entfernen Sie es und fügen Sie es dann über das Formular erneut hinzu
origin git@a:repo-name.git