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:
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.
ssh-keygen
.ssh
.id_rsa.pub
. Ouvrez-le sur le bloc-notes. Copiez tout le texte de celui-ci.Maintenant, tentez votre chance et cela fonctionnera à coup sûr.
É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.
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
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 .
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
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
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
Dans mon cas, cela ne fonctionnait pas dans le WSL (Windows Subsystem for Linux).
Quand je commence le WSL, je dois
eval $(ssh-agent -s)
ssh-add ~/.ssh/id_rsa
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
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
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
ssh-keygen -o -t rsa -b 4096 -C "[email protected]"
[email protected] est votre email de compte gitlab
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):
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):
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:
Vous allez montrer votre ssh-rsa générer.
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.
Regardez au-dessus de l'invite vous demandant d'entrer, vous obtiendrez le chemin de ssh-rsa.
Allez dans votre dossier SSH et obtenez le id_rsa.pub
Ouvrez-le et récupérez la clé et copiez le coller dans Gitlab et vous avez presque fini.
Vérifier par: ssh -T [email protected]
Vous obtiendrez: Welcome to GitLab, @joy4!
Terminé.
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.
Comment ajouter une clé SSH au compte gitlab dans ubuntu?
La clé SSH apparaîtra. Copier ceux-ci et
Allez sur votre compte gitlab.
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.)
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
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!
J'ai eu le même problème, je l'ai résolu en ajoutant une nouvelle clé ssh:
ssh-keygen -t ed25519 -C "[email protected]"
xclip -sel clip < ~/.ssh/id_ed25519.pub
dans mon cas sous Linux)settings=>ssh
et passez la nouvelle clé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:
cd 'project directory name'
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.
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
.
ssh key
et collez-la à cet endroit. Cliquez sur le bouton Add
cela fonctionnera.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
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/"
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. :-)
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.
Veuillez utiliser git config credential.helper store
si votre site utilise TLS/SSL. J'espère que ça marche
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.
Deux choses principalement
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
Changez la permission de id_rsa en tant que chmod 400 ~/.ssh/id_rsa