Erreur Git: "Veuillez vous assurer que vous disposez des droits d'accès appropriés et que le référentiel existe"


98

J'utilise TortoiseGit sur Windows. Lorsque j'essaie de cloner à partir du menu contextuel de l'explorateur Windows standard, j'obtiens cette erreur:

Veuillez vous assurer que vous disposez des droits d'accès appropriés et que le référentiel existe

Plus précisément, l'instantané du terminal est le suivant:

git.exe clone --progress -v "git @ arobotdev: \ git \ AlfaRobot.git" "C: \ Work \ AlfaRobot"

Clonage dans 'C: \ Work \ AlfaRobot' ...
Autorisation refusée, veuillez réessayer.
Autorisation refusée, veuillez réessayer.
Autorisation refusée (publickey, mot de passe).
fatal: impossible de lire à partir du référentiel distant.

Veuillez vous assurer que vous disposez des droits d'accès appropriés
et que le référentiel existe.

git n'a pas quitté proprement (code de sortie 128) (21450 ms @ 19.09.2014 10:36:58)

Que dois-je faire pour que git fonctionne correctement?


1
essayez de générer ssh keygen et ajoutez
Raja Simon

Utilisation de Shell (ou Git Bash sous Windows) pour créer une clé SSH:$ ssh-keygen -t rsa -C "youremail@example.com"
Belter

Eu cette erreur après avoir changé les dépôts en adresses git@github.com pour ne pas avoir à taper le mot de passe tout le temps. La vraie erreur qui l'a causé a été d'oublier d'ajouter ma clé publique sur github.
dasWesen

Réponses:


77

Votre URL git a peut-être changé. Modifiez l'URL dans le répertoire local à l'aide de la commande suivante

git remote set-url origin git@yourGitUrlHere

17
FYI github utilise maintenant un schéma d'URL:git remote set-url origin https://github.com/username/repository.git
RyPope

2
@RyPope vous pouvez utiliser n'importe quel protocole git (ssh) ou https, c'est votre souhait. github a maintenant les deux protocoles gitet https.
Vishnu

@Vishnu Qu'est-ce que c'est XXXXXXX?
244boy

@RyPope Convertissez-le en réponse
ishandutta2007

Une erreur très courante a été commise par moi. J'ai copié à l'aide de la commande clip xclip -sel clip < ~/.ssh/id_rsa.pub, mais lors du collage dans la zone de saisie de la clé github, j'ai supprimé le dernier saut de ligne en utilisant le retour arrière, ce qui a en fait changé la clé publique. Donc, copiez et collez toujours la clé publique ssh telle quelle sans supprimer la dernière nouvelle ligne.
Amreesh Tyagi

62

Ce problème peut être lié à votre ssh-agent, votre clé ssh n'a pas été ajoutée avec ssh-agent.Vous devez appliquer les étapes suivantes à l'aide de votre terminal: -

  1. $ eval "$ (ssh-agent -s)"

    Agent pid 5867

  2. $ ssh-add

    Entrez la phrase de passe pour /home/you/.ssh/id_rsa: [] Identité ajoutée: /home/you/.ssh/id_rsa (/home/you/.ssh/id_rsa)

alors cela fonctionnera..cheers J.


11
Encore une erreur lors du clonage:fatal: Could not read from remote repository.
IgorGanapolsky

Merci, cela a fonctionné pour moi, j'ai créé une clé différente de celle par défaut id_rsa, il suffit donc de le faire en plus dans la commande ci-dessus ssh-add -K ~ / .ssh / id_rsa_other_project.
Nitesh

Ouais, cela ne résoudra aucun problème. L'ajout de votre identité à ssh arrête seulement les choses qui demandent votre mot de passe de certificat à chaque fois
DMcCallum83

à votre santé. J'avais échoué à courir brew update. quand j'ai couru ssh-addavant d'exécuter la commande, cela a fonctionné. j'espère que je ne l'ai pas répété tout le temps.
nyxee

toujours obtenir l'erreur "La vérification de la clé d'hôte a échoué. fatal: impossible de lire à partir du référentiel distant." mais l'ajout d'un hôte connu a été corrigé pour moi: stackoverflow.com/questions/15214977/…
rickvian

37

Essayez d'utiliser HTTPS à la place de SSH tout en prenant le clone de GIT, utilisez cette URL pour le clonage de prise, vous pouvez utiliser Gitbase, Android Studio ou tout autre outil pour cloner la branche. entrez la description de l'image ici


35

Pour moi, c'était à cause de l'absence de clé SSH sur la machine. Vérifiez la clé SSH localement:

$ cat ~/.ssh/id_rsa.pub

Ceci est votre clé SSH. Ajoutez-le à vos clés SSH dans le référentiel.
Dans gitlab, accédez à

paramètres de profil -> Clés SSH

et ajoutez la clé


7
J'ai ajouté la clé comme vous l'avez mentionné et je reçois toujours le message d'accès refusé. S'il vous plaît aider
Jet le

18

Github utilise désormais un schéma d'URL

git remote set-url origin https://github.com/username/repository.git


9

Vous essayez de cloner le référentiel via ssh:, git@arobotdev...et vos clés SSH ne sont pas correctement définies sur le serveur. Il y a plusieurs raisons à cela:

  1. Votre clé publique n'est peut-être pas enregistrée dans le fichier allowed_keys de l'utilisateur git
  2. Si 1 n'est pas vrai, votre clé privée n'est pas enregistrée dans le dossier .ssh / de votre HOMEDIR.
  3. Les autorisations ne sont pas correctement définies

Si les 3 ci-dessus sont fausses, ma seule conclusion peut être d'essayer: en git@arobotdev:AlfaRobot.git supposant qu'AlfaRobot.git soit dans HOMEDIR de l'utilisateur git et non dans un dossier appelé git qui réside dans HOMEDIR de l'utilisateur git.


5

Le rsa.pub (c'est-à-dire la clé publique générée), doit être ajouté sur la page github >> settings >> ssh keys. Vérifiez que vous n'avez pas ajouté cette clé publique dans les clés de déploiement repository-settings >>. Si tel est le cas, supprimez l'entrée d'ici et ajoutez à la première place mentionnée.

Configuration détaillée des clés pub-privées .

Cela fonctionnera donc!


3
  1. La première chose que vous voudrez peut-être confirmer est la connexion Internet. Cependant, les problèmes d'Internet indiqueront principalement que le repo n'est pas accessible.

  2. Assurez-vous d'avoir configuré ssh à la fois localement et sur votre github. Voyez comment

  3. Assurez-vous que vous utilisez la télécommande ssh git. Si vous avez cloné le https, définissez simplement l'url sur l'url ssh, avec cette commande gitgit remote set-url origin git@github.com:your-username/your-repo-name.git

  4. Si vous avez correctement configuré ssh mais qu'il a simplement cessé de fonctionner, procédez comme suit:

    • eval "$(ssh-agent -s)"
    • ssh-add

    Si vous rencontrez toujours le problème, vérifiez que vous n'avez pas supprimé le ssh de votre github. Dans un cas où le ssh a été supprimé de github, vous pouvez le rajouter. Utilisez pbcopy < ~/.ssh/id_rsa.pubpour copier la clé ssh, puis accédez à votre paramètre github ssh et ajoutez-le.

Je vous recommanderai de toujours utiliser ssh. Pour la plupart des équipes avec lesquelles j'ai travaillé, vous ne pouvez pas accéder au référentiel (qui sont principalement privés) sauf si vous utilisez ssh. Pour un débutant, cela peut sembler plus difficile, mais plus tard, vous le trouverez plus facile et plus sécurisé.


3

J'ai eu ce problème et j'ai découvert que mon système était avec une mauvaise adresse DNS. Vérifiez votre réseau et testez avec

ssh -vvv git@bitbucket.org

Et lisez les messages de sortie. Si vous voyez "Vous pouvez utiliser git ou hg pour vous connecter à Bitbucket." , tout va bien.


bonjour @Albert, je suis confronté au même problème mais pour gitlab.com. Comment avez-vous résolu le problème?
abiratsis

@AlexandrosBiratsis je remplace mon DNS par une autre adresse. Essayez opendns ou google dns.
albert le

2

Un autre problème peut être votre connexion Internet. Évident peut-être, mais il m'a fallu quelques minutes pour comprendre que mon wifi était en panne :)


1
Selon le message d'erreur, il ne semble pas que la connexion Internet soit un problème ici.
jbmusso

2

Voici comment je résous ce problème. J'utilisais Babun (mintty.exe) sur Win7 / 10. Quand j'ai essayé de nombreuses solutions mentionnées ci-dessus, et aucune d'elles ne fonctionne. J'ai réalisé que j'avais peut-être utilisé un mauvais agent ssh ... Alors je cours echo $GIT_SSHpour le découvrir, il montre le chemin vers Plink.exe. Ce à quoi je m'attendais réellement, c'est OpenSSH.

Donc, j'ajoute une ligne suivante au ~/.zshrcfichier

Note 1: Vous pouvez l'exécuter directement dans babun également
Note 2: Si vous utilisez bash, le fichier de configuration est.bashrc

export GIT_SSH=$(which ssh)

Et il fonctionne!



2

Essayez https au lieu de ssh. Choisissez l'option https sur la page d'accueil du projet à partir de laquelle vous copiez l'URL du clone.


2

Si cela fonctionnait avant et a soudainement cessé de fonctionner:

Ce problème peut être dû au fait qu'il ssh-agentn'est parfois pas persistant lors des redémarrages. Vous devriez vérifier si ssh-agentvotre clé a été ajoutée:

ssh-add -l -E md5

si vous obtenez la sortie comme:

The agent has no identities.

cela signifie ssh-agenta perdu votre clé. Dans ce cas, il vous suffit d'ajouter à nouveau la clé d'identité. Quelque chose comme:

ssh-add ~/.ssh/git_rsa

L'erreur devrait disparaître maintenant!


Cela m'est arrivé lorsque j'ai créé un autre ssh pour un compte différent, alors j'ajoute simplement les éléments manquants git_rsadans la liste
Jean

1

Cela peut également se produire si vous vous connectez à votre référentiel git via un VPN. Assurez-vous que vous êtes connecté au VPN qui est utilisé pour accéder aux ressources de votre organisation.


1

Je rencontre cette erreur lors du téléchargement du projet sur gitlab. Je n'ai pas cloné à partir de git, mais j'ai téléchargé un projet. Pour pousser votre code vers gitlab, vous avez deux façons d'utiliser ssh ou https. Si vous utilisez https, vous devez entrer le nom d'utilisateur et le mot de passe du compte gitlab. Pour pousser votre code vers git, vous pouvez utiliser le code suivant.

Pousser vers Git pour la première fois

>$ cd
>$ mkdir .ssh;cd .ssh
>$ ssh-keygen -o -t rsa -b 4096 -C "email@example.com"

Le paramètre -C est facultatif, il fournit un commentaire à la fin de votre clé pour la distinguer des autres si vous en avez plusieurs. Cela créera id_rsa (votre clé privée) et id_rsa.pub (votre clé publique). Nous transmettons notre clé publique et gardons notre clé privée - enfin, privée. Les paramètres utilisateur de Gitlab sont l'endroit où vous ajouteriez ensuite votre clé publique à votre compte , ce qui nous permet enfin de pousser.

Dans l'emplacement de votre projet (répertoire), utilisez la commande ci-dessous

git init

Il transforme le répertoire actuel en un référentiel Git. Cela ajoute un sous-répertoire .git au répertoire courant et permet de démarrer l'enregistrement des révisions du projet.

Push en utilisant le chemin https

git push --set-upstream https://gitlab.com/Account_User_Name/Your_Project_Name.git master

Pousser à l'aide du chemin ssh

git push --set-upstream git@gitlab.com:Account_User_Name/Your_project_Name.git master

- set-upstream: indique à git le chemin vers l'origine. Si Git a déjà poussé sur votre branche actuelle, il se souviendra de l'origine

master : c'est le nom de la branche vers laquelle je veux pousser lors de l'initialisation


0

Comme d'autres réponses, utiliser httpsau lieu de sshétait la solution.

Je poste une réponse pour donner un exemple concret d'une solution possible. J'ai résolu ce problème avec bitbucket lorsque j'ai changé l'URL distante en HTTPS avec cette ligne de commande:

git remote set-url origin <bitbucket_URL>

Après cela, je pourrais pousser le contenu vers le référentiel avec cette commande:

git push -u origin --all

Et puis je pourrais aussi utiliser Sourcetree


0

Étrangement, je n'ai reçu cette erreur que dans 1 de mes nombreux dépôts.

Mon problème était après l'installation du nouveau GitHub Desktop pour Windows dans lequel l'ancien ancien GitHub for Win conservait les clés ~/.ssh/github_rsaet ~/.ssh/github_rsa.puboù, comme le nouveau GitHub for Win l'attend ~/.ssh/id_rsa, la solution ne faisait que renommer les clés privées et publiques existantes:

~/.ssh/github_rsa -> ~/.ssh/id_rsa
~/.ssh/github_rsa.pub -> ~/.ssh/id_rsa.pub

Après quoi, permettez-moi d'accéder à nouveau au repo sans problème.


0

utilisez votre origine https au lieu de l'url ssh

exemple:

git remote add origin  https://gitlab.com/user/folder.git

0

J'utilise Ubuntu

après avoir lu de nombreuses réponses, aucune d'elles ne peut résoudre le problème, même si j'ai déjà ajouté la clé SSH à mon compte git, et essayez de la tester en utilisant ssh -T git@gitlab.comet cela dit Welcome <my username>, mais cela me dit toujours que je n'ai pas de droits d'accès. Ensuite, j'ai trouvé que la raison est:

Normalement, si vous n'êtes pas rootutilisateur, il vous faudra exécuter avec sudopour chaque commande git.

lors de l'exécution sudo git clone <SSH....>(par exemple). il sera exécuté sous rootautorisation, mais accidentellement lors de la création de la clé SSH, je l'exécute en tant qu'utilisateur normal et j'enregistre la clé ~/.ssh/id_rsa, il résout le chemin absolu /home/username/.ssh/id_rsa. Et en le faisant, sudo git clone ...il recherche la clé SSH dans/root/.ssh/id_rsa

Pourquoi je peux en être sûr. Pour voir où git recherche votre clé SSH. Exécutez cette commande: sudo GIT_TRACE=1 GIT_SSH_COMMAND="ssh -vvv" git clone <your repository in SSH>. Il vous montrera où il recherche votre clé SSH.

Donc la SOLUTION que je suggère est:

Recréer votre clé SSH (suivez cette instruction ), MAIS exécutez sudo suà la toute première étape, alors tout ira bien.


0

L'ajout de la clé ssh a fonctionné pour moi. Vous pouvez créer une clé ssh avec la commande ssh-keygen sur mac. Vous devriez pouvoir voir le menu Deploy keys sur YourRepository> Settings, n'oubliez pas de cocher l'option Autoriser l'accès en écriture.

capture d'écran du menu de déploiement des clés


0

Une erreur très courante a été commise par moi. J'ai copié à l'aide de la commande clipxclip -sel clip < ~/.ssh/id_rsa.pub , mais lors du collage dans la zone de saisie de la clé github, j'ai supprimé le dernier saut de ligne en utilisant le retour arrière, ce qui a en fait changé la clé publique.

Donc, copiez et collez toujours la clé publique ssh telle quelle sans supprimer la dernière nouvelle ligne.


0

Pour moi, j'avais un problème avec le VPN de l'entreprise, après la déconnexion fonctionnant bien.

Vérifiez la connexion avec github à l'aide de la commande ssh -vvvT git@github.com


0

Le passage à l'utilisation de https fonctionne. Commencez par passer à https plutôt qu'aux clés ssh. git remote set-url origin

Il demandera ensuite le nom d'utilisateur et le mot de passe git.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.