web-dev-qa-db-fra.com

Obtenir l'autorisation refusée (clé publique) sur gitlab

Mon problème est que je ne peux ni pousser ni récupérer de GitLab. Cependant, je peux cloner (via HTTP ou via SSH). Je reçois cette erreur quand j'essaie de pousser:

Autorisation refusée (publickey) fatal: impossible de lire à partir du référentiel distant

Parmi tous les sujets que j'ai consultés, voici ce que j'ai fait:

  • Configurer une clé SSH sur mon ordinateur et ajouter la clé publique à GitLab
  • Fait la config --global pour le nom d'utilisateur et l'email
  • Cloné via SSH et via HTTP pour vérifier s'il résoudrait le problème
  • Fait la commande ssh -T [email protected]

En ce moment je veux frapper mon ordinateur. Si vous avez des idées sur la façon de résoudre mon problème, ce serait grandement apprécié.

J'ai trouvé cela après avoir cherché beaucoup. Cela fonctionnera parfaitement pour moi. 

  1. Aller à "Git Bash", tout comme cmd. Faites un clic droit et "Exécuter en tant qu'administrateur". 
  2. Tapez ssh-keygen
  3. Appuyez sur Entrée.
  4. Il vous sera demandé de sauvegarder la clé dans le répertoire spécifique.
  5. Appuyez sur Entrée. Il vous demandera de taper le mot de passe ou d'entrer sans mot de passe.
  6. La clé publique sera créée dans le répertoire spécifique.
  7. Maintenant, allez dans le répertoire et ouvrez le dossier .ssh.
  8. Vous verrez un fichier id_rsa.pub. Ouvrez-le sur le bloc-notes. Copiez tout le texte de celui-ci.
  9. Allez sur https://gitlab.com/profile/keys .
  10. Collez ici dans le champ "clé".
  11. Cliquez maintenant sur le "Titre" ci-dessous. Il sera automatiquement rempli.
  12. Cliquez ensuite sur "Ajouter une clé".

Maintenant, tentez votre chance et cela fonctionnera à coup sûr. 

112

Étape 1: Ajout d’un fichier de configuration dans le dossier ~/.ssh/qui ressemble à

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

Étape 2: Il suffit de cloner le dépôt git SANS Sudo.

33
Fedo Peralta

assurez-vous de ne pas utiliser Sudo git clone [email protected]:project/somethiing.git, sinon ssh recherchera dans /root/.ssh au lieu de la clé que vous avez téléchargée ~/.ssh/id_rsa

8
rivanov

Je pense que la solution simple consiste à ajouter une clé privée à l'agent d'authentification (si votre clé n'est pas ~/.ssh/id_rsa),

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

Vous laissez essentiellement le ssh-agent s'en occuper.

De plus, vous pouvez l'ajouter de manière permanente .

6
Hussain

Dans mon cas, ce n'était pas un problème de gitlab, mais un problème de configuration sshd. Le serveur ssh n'autorisait pas la connexion, à l'exception d'une liste d'utilisateurs. L'utilisateur git, celui qui se connecte à distance à gitlab, ne figurait pas dans cette liste. Alors, vérifiez ceci avant toute autre chose.

Vous pouvez vérifier la configuration de votre serveur ssh dans /etc/ssh/sshd_config. Si vous avez une ligne avec l'option AllowUsers, ajoutez-y git:

AllowUsers user1 user2 user3 git
3
skotperez

J'ai gitlab en cours d'exécution avec docker, voici ce que j'ai fait pour résoudre mon problème.

Constaté que dans docker/var/log/gitlab/sshd/current il y avait plusieurs occurrences d'un message:

Authentification refusée: mauvaise propriété ou modes pour le fichier /var/opt/gitlab/.ssh/authorized_keys

Après quoi, j'ai changé la propriété de ce fichier de 99: utilisateurs à git: utilisateurs avec:

chown git: utilisateurs authorised_keys

2
xab

si vous êtes sous Linux ou Macox, essayez ceci dans le terminal: 

ssh-add -l

si cela ne retourne rien, essayez ceci: 

ssh-add

il doit créer une identité dans ~/.ssh/id_rsa

après réessayer: 

ssh-add -l

il doit retourner votre identité, donc après avoir réessayé, il doit fonctionner

NB: n'oubliez pas d'ajouter votre clé ssh dans votre profil gitlab

merci

2
rapaelec

Dans mon cas, cela ne fonctionnait pas dans le WSL (Windows Subsystem for Linux).

Quand je commence le WSL, je dois

  • démarrer ssh-agent_ eval $(ssh-agent -s)
  • ajoutez la clé à ssh-agent: ssh-add ~/.ssh/id_rsa
  • si vous y êtes invité, entrez le mot de passe

Maintenant, la connexion fonctionne.
Nous pouvons le tester avec ssh -T [email protected]

explication détaillée: Git via SSH de Windows renvoie une autorisation refusée

1
TmTron

Lorsque vous avez plusieurs comptes git et que vous voulez une clé ssh différente

Vous devez suivre la même procédure pour générer la clé ssh, mais assurez-vous de

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

Entrez le chemin que vous souhaitez enregistrer (ex: my-pc/Desktop/.ssh/ed25519)

Ajoutez la clé publique à votre gitlab ( Comment ajouter une clé ssh à gitlab )

Vous devez créer une nouvelle identité SSH en utilisant la commande ci-dessous

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

Les étapes à suivre ont la même erreur, mais je les ai corrigées . Gitlab veut ssh-rsa alors voici le code pour lancer ssh pour rsa

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

[email protected] est votre email de compte gitlab

  1. Il vous demandera d'entrer, alors appuyez simplement sur Entrée après que le code ci-dessous est Invite, 

    Entrez le fichier dans lequel enregistrer la clé (/home/yourDesktopName/.ssh/id_rsa):

  2. Il vous invitera à nouveau à entrer, il vous suffit d'appuyer sur Entrée après que le code ci-dessous est Invite,

    Entrez la phrase secrète (vide pour aucune phrase secrète):

  3. Il vous demandera à nouveau le dernier nom à entrer. Appuyez simplement sur Entrée une fois que le code ci-dessous est appelé,

    Entrez à nouveau le même mot de passe: 

  4. Vous allez montrer votre ssh-rsa générer.

  5. Connectez-vous à votre compte Gitlab et allez dans la barre de navigation de droite que vous aurez définie et dans la barre de gauche, vous obtiendrez la clé ssh. Entrez dedans.

  6. Regardez au-dessus de l'invite vous demandant d'entrer, vous obtiendrez le chemin de ssh-rsa.

  7. Allez dans votre dossier SSH et obtenez le id_rsa.pub

  8. Ouvrez-le et récupérez la clé et copiez le coller dans Gitlab et vous avez presque fini.

  9. Vérifier par: ssh -T [email protected]

  10. Vous obtiendrez: Welcome to GitLab, @joy4!

  11. Terminé.

1
Y. Joy Ch. Singha

Allez au terminal et régénérez la clé ssh. Tapez ssh-keygen. Il vous demandera où vous voulez enregistrer, tapez le chemin.

Copiez ensuite la clé publique sur la plateforme gitlabs. Cela commence généralement par ssh-rsa.

1
recussive

Comment ajouter une clé SSH au compte gitlab dans ubuntu?

  1. Ouvrez le terminal dans votre répertoire de projet.
  2. Tapez 'ssh-keygen -o -trsa -b 4096 -C "votre email gitlab"' et appuyez sur Entrée
  3. Tapez 'vim /home/mnbtech/.ssh/id_rsa.pub' et appuyez sur Entrée (ou ouvrez manuellement votre 'id_rsa.pub' de l'endroit où vous l'avez enregistré)
  4. La clé SSH apparaîtra. Copier ceux-ci et

  5. Allez sur votre compte gitlab.

  6. Cliquez sur l'image de profil Et cliquez sur les paramètres
  7. Dans le côté gauche, sélectionnez SSH-Keys
  8. Puis collez ces clés Cliquez sur Ajouter une clé

La clé SSH sera ajoutée!

(N.B. Si vous avez la clé SSH Generate Previews et l’obtention de l’autorisation refusée (clé publique). Vous supprimez votre clé ssh Previews et en générez une nouvelle, puis ajoutez git user.name et un e-mail sur votre terminal.)

1
Ismail Hossain

Un autre problème pouvant être à l'origine de ce problème est lorsque vous avez une configuration avec 2 localisations% HOME% possibles.

J'utilise un PC sur lequel certains de mes documents sont stockés localement et d'autres sur un lecteur réseau. Certaines applications pensent que C:\Users\<MyUserName>\ est mon %home%, d'autres pensent que U:\ est la maison.

Il s'avère que ssh-keygen a mis ma clé privée sous C:\users\<MyUserName>\, et que ssh -T et ssh -v ont également été placés à cet emplacement.

Donc, tout semble bien fonctionner, sauf que git clone, git Push et d'autres recherchent une clé dans U:\. Ce qui échoue, alors j'obtiens l'erreur susmentionnée.

Il m'a fallu une heure pour le découvrir, mais au final, la solution était simple: j'ai tout copié de C:\Users\<MyUserName>\.ssh à U:\.ssh

1
Emil Bode

J'ai trouvé la solution dans aide de gitlab .

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

J'espère que cela peut aider certains d'entre vous!

1
JoeyGutMen

J'ai eu le même problème, je l'ai résolu en ajoutant une nouvelle clé ssh: 

  1. ssh-keygen -t ed25519 -C "[email protected]"
  2. Copiez votre clé publique SSH dans le presse-papiers (xclip -sel clip < ~/.ssh/id_ed25519.pub dans mon cas sous Linux)
  3. Sur gitlab, allez dans les clés settings=>ssh et passez la nouvelle clé
0
Ahmed AMMOURI

Auparavant, c'était très difficile pour moi, mais lorsque j'ai essayé, il est devenu si facile d'ajouter la clé ssh sous Mac et Linux. Il y a quelques étapes et commande pour faire ceci comme suit:

  1. Ouvrez un terminal de votre système et accédez au répertoire de votre projet à l’aide de la commande suivante:
cd 'project directory name'
  1. Exécutez la commande ssh-keygen dans ce terminal et entrez-la jusqu'à ce que l'image de la clé sélectionnée au hasard y apparaisse.

  2. Puis entrez une autre commande dans ce terminal:

cat ~/.ssh/id_rsa.pub

Cela va générer votre clé ssh. La clé commencera par ssh-rsa et se terminera par .local.

  1. Copiez la clé et accédez à votre section de profil Gitlab puis à la section ssh key et collez-la à cet endroit. Cliquez sur le bouton Add cela fonctionnera.
0
kumar ujjawal

Eh bien, j'ai eu le même problème et après avoir essayé la réponse proposée par @Khan. Cependant, je n'ai pu le faire fonctionner qu'en modifiant simplement l'URL d'origine dans le fichier .git/config en l'adresse https: https://gitlab.com/mygitlabusername/mygitproject.git

Puisque l'accès via ssh est refusé, j'ai compris que l'utilisation de https ne devrait pas être un problème. Il vous demandera toutefois votre nom d'utilisateur et votre mot de passe pour chaque Push dans le référentiel at

0
larrytech

J'ai résolu comme ça .. 

Généré une clé pour Windows en utilisant cette commande:

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

mais le problème était qu’après l’exécution de cette commande, une ligne apparaissait: "Entrez le fichier dans lequel enregistrer la clé (/c/Users/xxx/.ssh/id_rsa):" Ici, je donnais seul nom de fichier à cause duquel ma clé a été enregistrée dans mon disque dur et non à l’emplacement indiqué. Quand j'ai fait "git clone", il supposait que la clé se trouvait à l'emplacement "/c/Users/xxx/.ssh/id_rsa" mais elle n'a pas été trouvée, ce qui a provoqué une erreur.

Au moment de la génération de la clé 2, les fichiers générés disaient "fichier1" & "fichier1.pub". J'ai renommé ces deux fichiers en 

file1 -> id_rsa 

et

file1.pub -> id_rsa.pub

et placé à l'emplacement "/c/Users/xxx/.ssh/"

0
Sugandha Jain

J'ai ajouté mon ~/.ssh/id_rsa.pub à la liste des clés SSH connues dans mes paramètres GitLab https://gitlab.com/profile/keys . Cela a résolu le problème pour moi. :-)

0
seonghuhn

J'utilise Ubuntu 18.04, et c'était en fait un problème de permission sur mon ordinateur local. Le problème avait disparu lorsque j'ai défini les autorisations de lecture/écriture sur mon dossier .git.

0
manian

Veuillez utiliser git config credential.helper store si votre site utilise TLS/SSL. J'espère que ça marche

0
gmaam

Le problème pour moi était que je passais de UsePAM de yes à no dans le fichier de configuration SSH sous /etc/ssh/sshd_config. Avec UsePAM yes tout fonctionne parfaitement.

0
chevallier

Deux choses principalement

  1. Vous devez avoir les clés id_rsa.pub et id_rsa (privées) dans votre dossier .ssh (qui devrait se trouver dans votre dossier personnel. Créez-le s'il n'est pas présent, mettez vos clés). Cela ne fonctionnerait pas si vous avez nommé vos fichiers de clé différemment

  2. Changez la permission de id_rsa en tant que chmod 400 ~/.ssh/id_rsa

0
cherankrish