Gitlab funktioniert nicht mit SSH-Schlüsseln

Gitlab funktioniert nicht mit SSH-Schlüsseln

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/messagehat 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_keysund 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

verwandte Informationen