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?

Alex
la source
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 "[email protected]"
Belter
Eu cette erreur après avoir changé les dépôts en adresses [email protected] 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
Vishnu
la source
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.

Onkar_M18
la source
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

Lovekush Vishwakarma
la source
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é

Jacek Góraj
la source
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

RyPope
la source
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.

Mudassir Razvi
la source
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!

parasrish
la source
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 [email protected]: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é.

Obinna Nnenanya
la source
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 [email protected]

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

Albert
la source
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 :)

BoltzmannCerveau
la source
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!

Paris Qian Sen
la source
2

ajoutez ces lignes à votre .get/configfichier (grâce à @kovshenin answer Git Pull: Change Authentication ):

[credential]
    helper = wincred
Khaled AbuShqear
la source
Ou ~ / .gitconfig
Marcos
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.

Vedha Peri
la source
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!

shivam
la source
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.

John Doe
la source
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 protected]"

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 [email protected]: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

Gurjinder Singh
la source
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

Sébastien Gicquel
la source
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.

Mythz
la source
0

utilisez votre origine https au lieu de l'url ssh

exemple:

git remote add origin  https://gitlab.com/user/folder.git
peu de stilo
la source
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 [email protected]et 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.

Duc Trung Mai
la source
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

tlrmacl
la source
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.

Amreesh Tyagi
la source
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 [email protected]

rana_stack
la source
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.

Stephen Mwangi Wanjohi
la source