it-swarm.com.de

Erlaubnis verweigert werden (öffentlicher Schlüssel) für Gitlab

Mein Problem ist, dass ich weder GitLab noch Push oder Hol abrufen kann. Ich kann jedoch klonen (via HTTP oder via SSH). Ich erhalte diese Fehlermeldung, wenn ich versuche zu schieben:

Berechtigung verweigert (publickey) fatal: Das Remote-Repository konnte nicht gelesen werden

Von all den Threads, die ich angeschaut habe, habe ich Folgendes getan:

  • Richten Sie einen SSH-Schlüssel auf meinem Computer ein und fügen Sie den öffentlichen Schlüssel zu GitLab hinzu
  • Machen Sie die config --global für Benutzername und E-Mail
  • Über SSH und HTTP geklont, um zu prüfen, ob das Problem behoben werden kann
  • Fertig mit dem Befehl ssh -T [email protected]

Im Moment möchte ich meinen Computer schlagen. Wenn Sie wissen, wie Sie mein Problem lösen können, wäre ich Ihnen sehr dankbar.

Ich habe das gefunden, nachdem ich viel gesucht hatte. Es wird perfekt für mich funktionieren. 

  1. Gehen Sie zu "Git Bash" wie cmd. Klicken Sie mit der rechten Maustaste und "Als Administrator ausführen". 
  2. Typ ssh-keygen
  3. Drücken Sie Enter.
  4. Sie werden aufgefordert, den Schlüssel in einem bestimmten Verzeichnis zu speichern.
  5. Drücken Sie Enter. Sie werden aufgefordert, ein Kennwort einzugeben oder ohne Kennwort einzugeben.
  6. Der öffentliche Schlüssel wird für das spezifische Verzeichnis erstellt.
  7. Gehen Sie nun in das Verzeichnis und öffnen Sie den Ordner .ssh.
  8. Sie sehen eine Datei id_rsa.pub. Öffnen Sie es auf dem Merkzettel. Kopieren Sie den gesamten Text davon.
  9. Gehen Sie zu https://gitlab.com/profile/keys .
  10. Fügen Sie hier in das Textfeld "Schlüssel" ein.
  11. Klicken Sie nun auf den "Titel". Es wird automatisch gefüllt.
  12. Klicken Sie dann auf "Schlüssel hinzufügen".

Jetzt probieren Sie es aus und es wird sicher funktionieren. 

112

Schritt 1: Eine Konfigurationsdatei im Ordner ~/.ssh/wurde hinzugefügt

   User git
   Hostname gitlab.com
   IdentityFile ~/.ssh/id_rsa_gitlab
   TCPKeepAlive yes
   IdentitiesOnly yes

Schritt 2: Klonen Sie einfach das Git Repo OHNE Sudo.

33
Fedo Peralta

stellen Sie sicher, dass Sie Sudo git clone [email protected]:project/somethiing.git nicht ausführen. Andernfalls wird ssh in /root/.ssh statt mit dem hochgeladenen Schlüssel ~/.ssh/id_rsa aussehen.

8
rivanov

Ich denke, die einfache Lösung besteht darin, dem Authentifizierungsagenten einen privaten Schlüssel hinzuzufügen (wenn Ihr Schlüssel nicht ~/.ssh/id_rsa ist).

ssh-add ~/.ssh/<your private key>

Sie lassen im Grunde den ssh-agent sich darum kümmern.

Zusätzlich können Sie dauerhaft hinzufügen .

6
Hussain

In meinem Fall war es kein Gitlab-Problem, sondern eine sshd-Konfiguration. Der SSH-Server erlaubte keine Verbindung außer einer Liste von Benutzern. Der Benutzer git, der sich aus der Ferne mit gitlab verbindet, war nicht in dieser Liste. Überprüfen Sie dies also vor allem anderen.

Sie können Ihre SSH-Serverkonfiguration in /etc/ssh/sshd_config überprüfen. Wenn Sie eine Zeile mit der Option AllowUsers haben, fügen Sie git hinzu:

AllowUsers user1 user2 user3 git
3
skotperez

Ich habe Gitlab mit Docker laufen lassen. Dies ist, was ich getan habe, um mein Problem zu beheben.

In Docker/var/log/gitlab/sshd/current gefunden gab es mehrere Vorkommen einer Nachricht:

Authentifizierung abgelehnt: falscher Besitz oder Modi für die Datei /var/opt/gitlab/.ssh/authorized_keys

Danach wechselte ich den Besitz dieser Datei von 99: Benutzer zu git: Benutzer mit:

chown git: Benutzer Authorized_keys

2
xab

wenn Sie sich in Linux oder Macox befinden, versuchen Sie es einfach in terminal: 

ssh-add -l

wenn nichts zurückgegeben wird, versuchen Sie Folgendes: 

ssh-add

es muss Identität in ~/.ssh/id_rsa erstellt werden

nach Wiederholung: 

ssh-add -l

es muss Ihre Identität zurückgeben. Nach einem erneuten Klonversuch muss es funktionieren

Hinweis: Vergessen Sie nicht, Ihren SSH-Schlüssel in Ihrem Profilgitlab hinzuzufügen

vielen Dank

2
rapaelec

In meinem Fall hat es in der WSL (Windows Subsystem for Linux) nicht funktioniert.

Wenn ich die WSL starte, muss ich

  • starten Sie ssh-agent_ eval $(ssh-agent -s)
  • fügen Sie den Schlüssel zum ssh-agent hinzu: ssh-add ~/.ssh/id_rsa
  • wenn Sie dazu aufgefordert werden, geben Sie das Passwort ein

Nun funktioniert die Verbindung.
Wir können das mit ssh -T [email protected] testen

ausführliche Erklärung: Git via SSH von Windows gibt Permission Denied zurück

1
TmTron

Wenn Sie mehrere Git-Konto haben und unterschiedliche SSH-Schlüssel möchten

Sie müssen den gleichen Schritt ausführen, um den SSH-Schlüssel zu generieren

ssh-keygen -t ed25519 -C "[email protected]" 

Geben Sie den Pfad ein, den Sie speichern möchten (Beispiel: my-pc/Desktop/.ssh/ed25519)

Fügen Sie den öffentlichen Schlüssel zu Ihrem Gitlab hinzu ( So fügen Sie den SSH-Schlüssel zu Gitlab hinzu )

Sie müssen die SSH-Identität mit dem folgenden Befehl neu definieren

ssh-add ~/my-pc/Desktop/.ssh/ed25519
1
Srikrushna Pal

Schritte zu tun, bekam den gleichen Fehler, aber ich habe es behoben ... Gitlab will ssh-rsa so unten ist der Code, um ssh für rsa auszuführen

  1. ssh-keygen -o -t rsa -b 4096 -C "[email protected]"

[email protected] ist die E-Mail-Adresse Ihres Gitlab-Kontos

  1. Sie werden aufgefordert, die Eingabe zu bestätigen. Drücken Sie einfach die Eingabetaste, nachdem der folgende Code Eingabeaufforderung lautet. 

    Geben Sie die Datei ein, in der der Schlüssel gespeichert werden soll (/home/yourDesktopName/.ssh/id_rsa):

  2. Sie werden erneut zur Eingabe der Eingabeaufforderung aufgefordert. Drücken Sie einfach die Eingabetaste, nachdem der folgende Code Eingabeaufforderung lautet.

    Passphrase eingeben (leer für keine Passphrase):

  3. Es erscheint erneut die Aufforderung, das letzte Mal einzugeben, drücken Sie die Eingabetaste.

    Geben Sie dieselbe Passphrase erneut ein: 

  4. Sie werden Ihre ssh-rsa-Generierung anzeigen.

  5. Melden Sie sich bei Ihrem Gitlab-Konto an und gehen Sie zur rechten Navigationsleiste, um die Einstellungen zu übernehmen. In der linken Seitenleiste erhalten Sie den SSH-Schlüssel. Geben Sie es ein.

  6. Schauen Sie über die Eingabeaufforderung, die Sie zur Eingabe auffordert, und Sie erhalten den Pfad von ssh-rsa.

  7. Gehen Sie zu Ihrem SSH-Ordner und rufen Sie die id_rsa.pub auf

  8. Öffnen Sie es und holen Sie sich den Schlüssel und Copy Paste in das Gitlab und Sie sind fast fertig.

  9. Überprüfen Sie durch: ssh -T [email protected]

  10. Sie erhalten: Welcome to GitLab, @joy4!

  11. Erledigt.

1

Gehen Sie zum Terminal und regenerieren Sie den SSH-Schlüssel erneut. Geben Sie ssh-keygen ein. Sie werden gefragt, wo Sie sie speichern möchten. Geben Sie den Pfad ein.

Kopieren Sie dann den öffentlichen Schlüssel auf die Gitlabs-Plattform. Es beginnt normalerweise mit ssh-rsa.

1
recussive

Wie füge ich einen SSH-Schlüssel zum Gitlab-Konto in Ubuntu hinzu?

  1. Öffnen Sie das Terminal in Ihrem Projektverzeichnis.
  2. Geben Sie "ssh-keygen -o -t rsa -b 4096 -C" Ihre Gitlab-E-Mail-Adresse ein und drücken Sie die Eingabetaste
  3. Geben Sie "vim /home/mnbtech/.ssh/id_rsa.pub" ein und drücken Sie die Eingabetaste (oder öffnen Sie "id_rsa.pub" manuell von dem Ort aus, an dem Sie es gespeichert haben).
  4. Der SSH-Schlüssel wird angezeigt. Kopieren Sie diese und

  5. Gehe zu deinem gitlab Account.

  6. Klicke auf das Profilbild und klicke auf die Einstellungen
  7. In der linken Seite wählen Sie SSH-Keys
  8. Fügen Sie dann diesen Schlüssel ein. Klicken Sie auf Schlüssel hinzufügen

SSH-Key wird hinzugefügt!

(NB, wenn Sie Previews-SSH-Schlüssel generieren und die Berechtigung "Erhalten" verweigert haben (öffentlicher Schlüssel). Sie löschen Ihren Previews-SSH-Schlüssel und generieren einen neuen und fügen Git-Benutzername und E-Mail auf Ihrem Terminal hinzu.)

1
Ismail Hossain

Ein weiteres Problem, das dieses Verhalten verursachen kann, liegt vor, wenn Sie über ein Setup mit 2 möglichen% HOME% -Standorten verfügen.

Ich verwende einen PC, auf dem einige meiner Dokumente lokal und einige auf einem Netzlaufwerk gespeichert sind. Einige Anwendungen denken, dass C:\Users\<MyUserName>\ mein %home% ist, andere denken, dass U:\ das Zuhause ist.

Es stellte sich heraus, dass ssh-keygen meinen privaten Schlüssel unter C:\users\<MyUserName>\ gestellt hat und dass ssh -T und ssh -v auch dort nachsehen.

Also scheint alles gut zu funktionieren, außer dass git clone, git Push und andere nach einem Schlüssel in U:\ suchen. Was fehlschlägt, so bekomme ich den og Fehler.

Ich brauchte eine Stunde, um das herauszufinden, aber am Ende war die Lösung einfach: Ich habe alles von C:\Users\<MyUserName>\.ssh bis U:\.ssh kopiert.

1
Emil Bode

Ich fand die Lösung in Gitlab-Hilfe .

To create a new SSH key pair: 
 1. Open a terminal on Linux or macOS, or Git Bash / WSL on Windows.
 2. Generate a new ED25519 SSH key pair: ssh-keygen -t ed25519 -C "[email protected]"
 2.1 Or, if you want to use RSA: ssh-keygen -o -t rsa -b 4096 -C "[email protected]"
 3. Next, you will be prompted to input a file path to save your SSH key pair to... use the suggested path by pressing Enter
 4. Once the path is decided, you will be prompted to input a password to secure your new SSH key pair. It's a best practice to use a password, but it's not required and you can skip creating it by pressing Enter twice.
 5. Copy your public SSH key to the clipboard by using one of the commands below depending on your Operating System:
        macOS:        pbcopy < ~/.ssh/id_ed25519.pub
        WSL / GNU/Linux (requires the xclip package):      xclip -sel clip < ~/.ssh/id_ed25519.pub
        Git Bash on Windows:      cat ~/.ssh/id_ed25519.pub | clip
 6. Navigating to SSH Keys and pasting your public key in the Key field
 7. Click the Add key button

Ich hoffe es kann einigen von euch helfen!

1
JoeyGutMen

Ich hatte das gleiche Problem, ich löste es durch Hinzufügen eines neuen SSH-Schlüssels: 

  1. ssh-keygen -t ed25519 -C "[email protected]"
  2. Kopieren Sie Ihren öffentlichen SSH-Schlüssel in die Zwischenablage (xclip -sel clip < ~/.ssh/id_ed25519.pub in meinem Fall unter Linux)
  3. Gehen Sie in gitlab zu settings=>ssh-Schlüsseln und hinter dem neuen Schlüssel
0
Ahmed AMMOURI

Früher war es sehr schwierig für mich, aber als ich es versuchte, wurde es so einfach, den SSH-Schlüssel unter Mac und Linux hinzuzufügen. Es gibt ein paar Schritte und einen Befehl, um dies wie folgt zu tun:

  1. Öffnen Sie ein Terminal Ihres Systems und verschieben Sie es mit dem folgenden Befehl in Ihr Projektverzeichnis:
cd 'project directory name'
  1. Führen Sie den Befehl ssh-keygen in diesem Terminal aus und geben Sie ihn ein, bis das zufällige Bild des Schlüssels dort angezeigt wird.

  2. Dann geben Sie einen weiteren Befehl in diesem Terminal ein:

cat ~/.ssh/id_rsa.pub

Es wird Ihren SSH-Schlüssel generieren. Die Taste beginnt mit ssh-rsa und endet mit .local.

  1. Kopieren Sie den Schlüssel und gehen Sie zu Ihrem Gitlab-Profil, dann zu ssh key und fügen Sie ihn dort ein. Klicken Sie auf die Schaltfläche Add. Dies funktioniert.
0
kumar ujjawal

Nun, ich hatte das gleiche Problem und nach dem Versuch die Antwort @ Khan vorgeschlagen. Ich konnte es jedoch nur zum Laufen bringen, indem ich die Origin-URL in der .git/config-Datei in die https-Adresse änderte: https://gitlab.com/mygitlabusername/mygitproject.git

Da der Zugriff über ssh verweigert wird, stellte ich fest, dass die Verwendung von https kein Problem sein sollte. Sie werden jedoch bei jedem Push zum at-Repository nach Ihrem Benutzernamen und Kennwort gefragt

0
larrytech

Ich habe das so gelöst .. 

Mit diesem Befehl wurde ein Schlüssel für Windows generiert:

ssh-keygen -t rsa -C "[email protected]" -b 4096

das Problem war jedoch, dass nach dem Ausführen dieses Befehls eine Zeile geöffnet wurde: "Geben Sie die Datei ein, in der der Schlüssel gespeichert werden soll (/c/Users/xxx/.ssh/id_rsa):" Hier habe ich gegeben Nur Dateiname, aufgrund dessen mein Schlüssel in meinem PDA gespeichert wurde und nicht am angegebenen Ort. Als ich "git clone" verwendete, ging der Schlüssel von der Position "/c/Users/xxx/.ssh/id_rsa" aus. Er wurde jedoch nicht gefunden. Daher wurde ein Fehler ausgegeben.

Zum Zeitpunkt der Schlüsselgenerierung wurden 2 Dateien generiert, z. B. "file1" & "file1.pub". Ich habe beide Dateien umbenannt als 

file1 -> id_rsa 

und

file1.pub -> id_rsa.pub

und beide in der Position "/c/Users/xxx/.ssh/" platziert

0
Sugandha Jain

Ich habe meinen ~/.ssh/id_rsa.pub zur Liste der bekannten SSH-Schlüssel in meinen GitLab-Einstellungen https://gitlab.com/profile/keys hinzugefügt. Das hat das Problem für mich gelöst. :-)

0
seonghuhn

Ich verwende Ubuntu 18.04 und es war tatsächlich ein Berechtigungsproblem auf meinem lokalen Computer. Das Problem war behoben, als ich die Lese-/Schreibberechtigung für meinen .git-Ordner festgelegt habe.

0
manian

Bitte verwenden Sie git config credential.helper store, wenn Ihre Site TLS/SSL verwendet. Hoffe das klappt

0
gmaam

Das Problem für mich war, dass ich UsePAM von yes auf no in der SSH-Konfigurationsdatei unter /etc/ssh/sshd_config umgestellt habe. Mit UsePAM yes funktioniert alles einwandfrei.

0
chevallier

Hauptsächlich zwei Dinge

  1. Sie müssen die Schlüssel id_rsa.pub und id_rsa (privat) in Ihrem .ssh-Ordner haben (der sich in Ihrem Ausgangsordner befinden sollte. Erstellen Sie ihn, wenn er nicht vorhanden ist, und legen Sie Ihre Schlüssel ab). Es würde nicht funktionieren, wenn Sie Ihre Schlüsseldateien anders benannt haben

  2. Ändern Sie die Berechtigung von id_rsa in chmod 400 ~/.ssh/id_rsa

0
cherankrish