Pour obtenir la permission refusée (clé publique) sur gitlab
Mon problème est que je ne peux pas pousser ou de chercher à partir de GitLab. Cependant, je peux clone (via HTTP ou via SSH). J'ai cette erreur quand j'essaie de faire :
Permission denied (publickey) fatale : impossible de lire à partir d'un dépôt distant
De tous les threads que j'ai regardé, voici ce que j'ai fait :
- Configurer une clé SSH sur mon ordinateur et ajout de la clé publique de GitLab
- Fait la config --global pour le nom d'utilisateur et e-mail
- Cloné par SSH via HTTP pour vérifier si il permettrait de résoudre la question
- Fait le ssh -T [email protected] commande
Si vous avez des idées sur la façon de résoudre mon problème, il serait grandement apprécié.
- exécuter
ssh -vvvv [email protected]
pour voir si elle prend la clé SSH - Avez-vous d'ajouter la clé SSH à l'aide de gitlab.com/profile/keys ?
- Nils Werner : je reçois beaucoup de lignes quand je fais cette commande, mais l'un d'eux est "l'Authentification a réussi (publickey)"
- Akram Tarifs : Oui je l'ai fait
- Avez-vous des permissions de lecture à partir de la mise en pension, et s'il y a quelque chose dans le repo?
- Nils Werner : C'est mon repo, je suis un maître de celui-ci. Et il n'est qu'un fichier README.md dans les pensions de droit maintenant.
- Qu'en est
GIT_SSH=ssh -vvv git push
surssh
? - Malheureusement je ne serai pas en mesure de tester votre commande, j'ai créé un nouveau local repo et cloné dans celui-là. Maintenant, tout workds. Merci pour votre aide.
- assurez-vous que vous n'exécutez pas
sudo git clone [email protected]:project/somethiing.git
, sinon ssh va le chercher dans/root/.ssh
au lieu de la clé que vous avez téléchargé~/.ssh/id_rsa
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé ce après avoir cherché beaucoup. Il fonctionnera parfaitement bien pour moi.
ssh-keygen
.ssh
dossier.id_rsa.pub
. L'ouvrir dans le bloc-notes. Copie tout le texte.Maintenant donner un coup de feu et il va travailler pour vous.
type %userprofile%\.ssh\id_rsa.pub | clip
ssh-add filename
(avec chemin d'accès si ce n'est dans le rsa dir) après avoir suivi les étapes ci-dessusssh-add
commandeL'étape 1:
Ajout d'un fichier de configuration dans ~/.ssh/dossier qui ressemble à
Étape 2: il suffit de cloner le repo git SANS sudo.
id_rsa_gitlab
dans les Ofve exemple, vous aurez besoin d'une config-file. Gitlab est bel article sur le sujet: gitlab.com/help/ssh/...Je pense que la solution la plus simple est d'ajouter de la clé privée d'authentification de l'agent (si votre clé n'est pas
~/.ssh/id_rsa
),En gros, vous laissez le
ssh-agent
prendre soin d'elle.En outre, vous pouvez ajouter de façon permanente.
.pub
extension.assurez-vous que vous n'exécutez pas
sudo git clone [email protected]:project/somethiing.git
, sinon ssh va le chercher dans/root/.ssh
au lieu de la clé que vous avez téléchargé~/.ssh/id_rsa
Dans mon cas, il n'a pas de travail dans le WSL (sous-système Windows pour Linux).
Quand je lance le WSL, je dois
eval $(ssh-agent -s)
ssh-add ~/.ssh/id_rsa
Maintenant la connexion fonctionne.
Nous pouvons tester cela avec
ssh -T [email protected]
explication détaillée: Git via SSH à partir de Windows renvoie Permission Denied
Dans mon cas, ce n'était pas un gitlab problème, mais une configuration de sshd un. Le serveur ssh ne pas autoriser la connexion à l'exception d'une liste d'utilisateurs. L'utilisateur git, la connexion à distance à gitlab, n'était pas dans cette liste. Donc, à vérifier avant toute autre chose.
Vous pouvez vérifier votre serveur ssh configuration dans
/etc/ssh/sshd_config
. Si vous avez une ligne avec l'optionAllowUsers
, ajouter git pour elle:Étapes à faire, a obtenu le même message d'erreur mais je l'ai corrigé.
Gitlab veut ssh-rsa donc ci-dessous le code à exécuter ssh pour rsa
ssh-keygen -o -t rsa -b 4096 -C "[email protected]"
[email protected] est votre gitlab compte e-mail
Il vous invite à entrer, appuyez simplement sur Entrée après le code ci-dessous est rapide,
Entrez fichier dans lequel enregistrer la clé (/home/yourDesktopName/.ssh/id_rsa):
Il vous invite à nouveau à vous pour entrer, appuyez simplement sur Entrée après le code ci-dessous est rapide,
Enter passphrase (vide pour sans passphrase):
Il vous invite à nouveau pour le dernier que vous à entrer, appuyez simplement sur Entrée après le code ci-dessous est rapide,
Entrer dans la même phrase de passe de nouveau:
Vous montrera votre ssh-rsa générer.
Connectez-vous à votre Gitlab compte et Allez à droite, barre de navigation, vous obtiendrez de réglage et dans la barre latérale de gauche, vous obtiendrez la clé ssh. Entrer en elle.
Regarder au-dessus de l'invite vous demandant d'entrer, vous obtiendrez le chemin de ssh-rsa.
Aller à votre SSH dossier et obtenir le id_rsa.pub
De l'ouvrir et obtenir la clé et les Copier /Coller à la Gitlab et vous êtes près à faire.
Vérifier par:
ssh -T [email protected]
Vous obtiendrez:
Welcome to GitLab, @joy4!
Fait.
J'ai gitlab en cours d'exécution avec docker, c'est ce que j'ai fait pour résoudre mon problème.
Constaté que l'intérieur de docker /var/log/gitlab/sshd/actuel il y avait plusieurs occurences d'un message:
Et après j'ai changé de propriétaire de ce fichier à partir 99:les utilisateurs à git:les utilisateurs avec:
si vous êtes sous linux ou macox , essaie juste de faire ceci dans le terminal:
HTML:
si elle renvoie rien, essayez ceci:
HTML:
doit créer une identité dans ~/.ssh/id_rsa
après réessayer :
HTML:
il doit retourner votre identité, donc après la nouvelle tentative de cloner , il doit travailler
NB: n'oubliez pas d'ajouter votre clé ssh dans votre profil gitlab
grâce
J'ai eu le même problème, j'ai résolu par l'ajout d'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
clés et le passé de la nouvelle cléDeux choses principalement
Vous devez avoir id_rsa.pub et id_rsa (privé) les clés de votre .ssh dossier ( qui doit être dans votre dossier home.Créer si elle n'est pas d'y mettre vos clés ). Il ne fonctionne pas Si vous avez nommé votre clé de fichiers différemment
Modifier l'autorisation de l'id_rsa comme chmod 400 ~/.ssh/id_rsa
Aller à la borne et de régénérer la clé ssh de nouveau. Type
ssh-keygen
. Il va vous demander où vous souhaitez l'enregistrer, tapez le chemin d'accès.Puis copiez la clé publique à gitlabs plate-forme. Il commence généralement avec ssh-rsa.
Entrez le chemin d'accès que vous souhaitez enregistrer(Ex: mon-pc/Desktop/.ssh/ed25519)
Ajouter la clé publique de votre gitlab (Comment faire pour ajouter la clé ssh pour gitlab)
J'ai trouvé la solution dans gitlab aider.
J'espère que cela peut aider certains d'entre vous!
Un autre problème qui peut provoquer ce comportement, c'est quand vous avez une installation avec 2% HOME%-locations.
Je suis sur un PC où certains de mes documents sont stockés localement, et certains d'entre eux sont stockés sur un lecteur réseau. Certaines applications penser
C:\Users\<MyUserName>\
est mon%home%
, d'autres pensent queU:\
est la maison.S'avère
ssh-keygen
mettre ma clé privée en vertu deC:\users\<MyUserName>\
, et quessh -T
etssh -v
aussi y chercher.Donc, tout semble bien fonctionner, sauf que
git clone
,git push
et d'autres pour une clé dansU:\
.Qui ne, donc, je reçois l'erreur susmentionnée.
Il m'a fallu une heure pour le trouver, mais en fin de compte, la solution a été simple: j'ai copié le tout à partir de
C:\Users\<MyUserName>\.ssh
àU:\.ssh
J'ai résolu comme ça..
Généré une clé pour Windows à l'aide de cette commande:
mais le problème était que, après l'exécution de cette commande, il a sauté une ligne:
"Entrez fichier dans lequel enregistrer la clé (/c/Utilisateurs/xxx/.ssh/id_rsa):"
Ici, je donnais seulement de nom de fichier en raison de laquelle ma clé a été sauvés dans mon pwd et pas dans l'emplacement indiqué. Quand j'ai fait "git clone ", il a été en supposant que la clé pour être en "/c/Utilisateurs/xxx/.ssh/id_rsa" emplacement, mais il n'a pas été trouvé, c'est donc jeter erreur.
Au moment de la génération de la clé 2 fichiers ont été générés dire "fichier1" & "fichier1.pub". J'ai renommé à la fois ces fichiers en tant que
et
et placé à la fois dans l'emplacement
"/c/Users/xxx/.ssh/"
J'ai ajouté mon
~/.ssh/id_rsa.pub
à la liste des Clés SSH à mon GitLab paramètres https://gitlab.com/profile/keys. Qui a résolu le problème pour moi. 🙂J'utilise ubuntu 18.04, et c'est en fait la permission problème dans ma machine locale. Le problème a disparu lorsque j'ai mis en lecture/écriture à mon .git dossier.
Bien j'ai eu ce même problème et après avoir essayé la réponse @Khan proposé. Cependant, je n'ai pu le faire fonctionner en changeant juste l'url d'origine dans le .git/config fichier à l'adresse https : https://gitlab.com/mygitlabusername/mygitproject.git
Depuis l'accès via ssh est refusé, j'ai compris à l'aide de https ne devrait pas être un problème. Il va cependant demander votre nom d'utilisateur et le mot de passe pour chaque pression de la au référentiel
Le problème pour moi est que je suis passé
UsePAM
deyes
àno
dans le fichier de configuration de SSH sous/etc/ssh/sshd_config
. AvecUsePAM yes
tout fonctionne parfaitement.Veuillez utiliser
git config credential.helper store
si votre site est à l'aide de TLS/SSL.Espérons que cela fonctionne