web-dev-qa-db-fra.com

git: fatal: impossible de lire à partir du référentiel distant

J'essaie de me préparer avec http://danielmiessler.com/study/git/#website pour gérer mon site.

Je suis arrivé à la dernière étape des instructions: site Web git Push + maître: références/têtes/maître

Je travaille en utilisant la ligne de commande git ming32 dans win7

$ git Push website +master:refs/heads/master
Bill@***.com's password:
Connection closed by 198.91.80.3
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Un problème ici peut être que le programme recherche Bill@***.com. Lorsque je me connecte via ssh à mon site, j'ai un nom d'utilisateur différent (disons 'abc'). alors peut-être que cela devrait être abc@***.com. Si oui je ne sais pas comment changer cela ou si je peux pousser sous un alias

255
user61629

Vous pouvez spécifier le nom d'utilisateur que SSH doit envoyer au système distant dans le cadre de l'URL de votre télécommande. Placez le nom d'utilisateur, suivi d'un @, avant le nom d'hôte distant.

git remote set-url website abc@***.com:path/to/repo
100
rob mayoff

Assurez-vous d'avoir l'URL correcte dans .git/config

url = [email protected]:username/repo.git

Si c'est votre première poussée, vous devrez configurer correctement en amont

$ git Push -u Origin master

Vous pouvez vérifier quelle clé est utilisée par:

$ ssh -vvv [email protected]

La réponse devrait contenir quelque chose comme ceci:

debug1: Next authentication method: publickey
debug1: Offering RSA public key: ~/.ssh/id_rsa
...
You've successfully authenticated, but GitHub does not provide Shell access.

Il est également possible de définir des règles pour ssh dans ~/.ssh/config, par exemple. basé sur des alias:

   Host github
      HostName github.com 
      User git
      IdentityFile "~/.ssh/id_rsa"

   Host git
      HostName github.com 
      User git
      IdentityFile "~/.ssh/some_other_id"

Vous pouvez définir la connexion à différents ports, utiliser un nom d'utilisateur différent, etc. pour chaque alias.

103
Tombart

Votre clé ssh a probablement été retirée de l'agent ssh

ssh-add ~/.ssh/id_rsa

où id_rsa est une clé ssh associée à git repo

93
Johnny Cage

Je faisais face au même problème il y a un moment ... 

mon .git/config avait 

url = [email protected]:manishnakar/polymer-demo.git

Je l'ai remplacé par 

url = https://github.com/manishnakar/polymer-demo.git 

et ça marche maintenant :) 

81
Manish Nakar

Essayez de supprimer la variable d’environnement GIT_SSH avec unset GIT_SSH. C'était la cause de mon problème.

22
Scott Lindner

Cela est généralement dû au fait que la clé SSH ne correspond pas à la télécommande. 

Solutions:

  1. Allez au terminal et tapez la commande suivante (Mac, Linux) remplace par votre identifiant de messagerie.

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

  2. Copiez la clé générée en utilisant la commande suivante à partir de Word ssh.

    cat ~/.ssh/id_rsa.pub

  3. Collez-le dans github, bitbucket ou gitlab de votre télécommande.
  4. Sauvegarde le.
10
Bastin Robin

Après avoir fait quelques recherches, j'ai enfin trouvé une solution pour cela, vous avez déclaré une variable d'environnement dans le chemin plink.exe. Donc, si vous supprimez ce chemin, rouvrez le git bash et essayez de cloner via SSH, cela fonctionnera.

Se référer à ce lien

http://sourceforge.net/p/forge/site-support/2959/#204c

7

J'ai eu le même problème.

Cette erreur signifie que vous n'avez pas spécifié votre adresse URL distante sur laquelle votre code sera envoyé.

Vous pouvez définir une URL distante de 2 manières (principalement):

  1. Spécifiez l'URL distante en exécutant la commande sur Git Bash.

    • Accédez au répertoire de votre projet

    • Ouvrez Git Bash

    • Exécuter la commande: 

      • git remote set-url Origin <https://abc.xyz/USERNAME/REPOSITORY.git>
  2. Mentionnez l'URL distante directement dans le fichier de configuration

    • Accédez au répertoire de votre projet

    • Déplacer vers le dossier .git

    • Ouvrir le fichier config dans un éditeur de texte

    • Copier et coller les lignes ci-dessous 

      • [remote "Origin"] url = https://abc.xyz/USERNAME/REPOSITORY.git fetch = +refs/heads/*:refs/remotes/Origin/*

Pour des informations plus détaillées, visitez ce link .

6
Pratik Patel

Assurez-vous que ssh-agent est en cours d'exécution en exécutant la commande suivante sur votre terminal:

eval $(ssh-agent -s)

Source: Documentation Github

5
user3362907

J'ai eu la même erreur. La solution était la suivante: J'ai corrigé mon URL dans .git/config. Je viens de le copier depuis l'URL de clone HTTPS. Ce serait quelque chose comme ça:

url = https://github.com/*your*git*name*/*your*git*app*.git

Ça a marché.

5
tan75

Si vous utilisez Gitlab, vous devrez peut-être vous connecter et accepter les nouvelles conditions d'utilisation de Gitlab avant d'essayer de tirer ou de pousser.

4

Dans votre fichier .git/config 

[remote "YOUR_APP_NAME"]
    url = [email protected]:YOUR_APP_NAME.git
    fetch = +refs/heads/*:refs/remotes/YOUR_APP_NAME/*

Et simplement

git Push YOUR_APP_NAME master:master 
2
user1982195

Si après la commande "git Push Origin master", vous voyez l'erreur "Impossible de lire à partir du référentiel distant", essayez ceci 

1.ssh-keygen -t rsa -b 4096 -C "youremail"
2.eval $(ssh-agent -s)
3.ssh-add ~/.ssh/id_rsa
4.clip < ~/.ssh/id_rsa.pub(it copies the ssh key that has got generated)
5.then go to your remote repository on github and goto settings-> SSH and GPG keys ->new SSH key ->enter any title and paste the copied SSH key and save it
6. now give git Push Origin master 
2
sushmitha

Pour mon cas, j'utilise le réseau d'entreprise (sans connexion Internet) au bureau. Afin d'extraire le code de github, j'ai défini le proxy https dans gitbash, puis j'utilise https au lieu de ssh pour extraire le code, cela fonctionne bien. Cependant, quand vient le code Push, le proxy https ne fonctionnera pas. Donc, soit basculer vers le réseau Internet (avec une connexion Internet) ou définir proxy ssh peut résoudre le problème.

2
wenwen

Dans mon cas, j’utilisais une clé ssh avec un mot de passe pour s’authentifier avec github. Je n'avais pas configuré correctement pageant sous Windows (uniquement sous cygwin). Les étapes manquantes devaient pointer la variable d’environnement git_ssh sur plink.exe. En outre, vous devez insérer github.com dans le répertoire connink_hosts. 

   plink github.com
   y
   <then ctrl-c>

J'espère que cela t'aides!

J'espère que intellij m'aurait donné une erreur plus utile ou, mieux encore, m'a demandé de taper le mot de passe ssh key.

2
Jeff Hoye

J'avais un travail parfaitement correct et soudainement, j'ai eu cette erreur lorsque j'ai essayé de pousser au maître. Comme je l'ai découvert, c'est parce que l'hôte du référentiel avait des problèmes.

Si vous utilisez GitHub ou Bitbucket, vous pouvez facilement vérifier le statut à

https://status.github.com/messages ou https://status.bitbucket.org/

 enter image description here

1
Adam

D'après mon expérience, l'une des raisons ce problème est survenu est parce que vous avez une connexion Internet instable.

1
Marwan Salim

Une autre solution de contournement: 

Cela m’arrive parfois à cause de problèmes de réseau. Je ne comprends pas parfaitement le problème fondamental, mais le fait de passer à un autre sous-réseau ou d'utiliser un VPN le résout

1
kip2

J'ai eu le même problème et après un certain temps, j'ai vu que j'étais sous l'utilisateur root (avec Sudo -s). Que cette aide pour quelqu'un.

1
Jean-Luc Barat

En fait, j’ai essayé pas mal de choses pour que ça marche sous Win7, depuis que j’ai modifié le SSH exectun fron natif en build-it et en arrière et la même erreur ... "fichier en tant que:

[remote "Origin"]
        url = https://github.com/user_name/repository_name.git
        fetch = +refs/heads/*:refs/remotes/Origin/*

et cela a finalement fonctionné. Alors peut-être que cela pourrait fonctionner pour vous aussi.

1
Ignacio lucatero

Si vous obtenez toujours la même erreur, assurez-vous que dans les paramètres git-> onglet ssh-> le client ssh à utiliser est défini sur openSSH enter image description here

0
Anil Kumar B

Pour ceux qui ont ce problème sur un dépôt distant privé. assurez-vous d'avoir accepté l'accord Xcode sur le serveur distant: il nous a fallu des semaines pour découvrir ce correctif

Utilisez cette commande à partir de la ligne de commande: Sudo xcodebuild -license

Je recommanderais de vérifier toutes les télécommandes que vous avez configurées avec git remote -v. Si vous avez configuré votre référentiel sur une télécommande qui a été supprimée, vous recevrez le message d'erreur suivant: fatal: Could not read from remote repository. Please make sure you have the correct access rightsand the repository exists. Même lorsque vous essayez de pousser ou de tirer vers une autre télécommande (existante). Donc, si vous avez une télécommande qui a été supprimée, vous pouvez supprimer avec git remote remove name-of-remote-to-remove et ensuite vous pouvez pousser ou tirer vers vos télécommandes existantes sans problèmes.

0
Miguel Salas

Dans mon cas c'était le postBuffer ..

git config --global http.postBuffer 524288000

Pour référence, lire: https://Gist.github.com/marcusoftnet/1177936

J'ai eu ce problème en utilisant gitbash sur Windows 10. J'ai essayé plusieurs solutions pour résoudre ce problème, les principales étant:

  1. Recréé mes clés SSH et mis à jour à bitbucket. N'a pas aidé
  2. Activé le débogage à l’aide de this et a découvert que j’obtenais le message "Echec de la requête Shell sur le canal 0" comme demandé ici
  3. Redémarrage de mon PC Windows

Aucune de ce qui précède n'a aidé. J'ai fini par réinstaller Git pour Windows Cela n'a pris que quelques minutes par rapport à d'autres choses que j'ai faites et cela a résolu le problème!

0
user3885927

J'ai résolu ce problème en en redémarrant le terminal (ouvre une nouvelle fenêtre/onglet).

Donc, si vous ne voulez pas vraiment comprendre le problème sous-jacent, vous devez essayer la méthode avant de creuser plus profondément :)

0
mraxus

Ajoutant au "J'ai eu le même problème et ...", j'utilise aussi git via Ming32 (git bash) Shell sous Windows.

Dans mon cas, le dépôt m'oblige à saisir un mot de passe, sans utiliser la clé SSH, mais c'était pas qui demandait le mot de passe, disant simplement "fatal: Lecture impossible ...", bien que je puisse entrer SSH normalement, utilisant plink et ssh, et avait défini les deux clés d'hôte connu.

J'ai essayé la plupart des recommandations ici et dans d'autres OS.

J'ai trouvé à la fin cela a bien fonctionné dans Powershell , mais pas dans git bash, sans modifications ni corrections.

0
scipilot

J'ai fait face au même problème; vous pouvez simplement l'exécuter sur votre fenêtre de commande:

git remote add Origin https: // votre/repository/url

0
Jsa

J'obtenais ce problème de façon intermittente, où la plupart du temps, le message d'erreur n'était pas transmis. La solution pour moi était de configurer LDAP correctement après la modification de l'adresse IP de mon serveur LDAP.

La configuration /etc/gitlab/gitlab.rb pour LDAP était dirigée vers une adresse IP inexistante et le fait de modifier l'hôte pour indiquer le nom d'hôte approprié pour le serveur LDAP a résolu le problème.

Pour diagnostiquer le problème, utilisez la commande gitlab-ctl tail pour vous aider à rechercher des stacktraces. Pour moi, j'ai trouvé ce stacktrace:

==> /var/log/gitlab/gitlab-Rails/production.log <==

Net::LDAP::Error (No route to Host - connect(2) for 10.10.10.12:389):
  /opt/gitlab/embedded/lib/Ruby/gems/2.3.0/gems/net-ldap-0.16.0/lib/net/ldap/connection.rb:72:in `open_connection'
...

Apportez les modifications à la valeur de l'hôte dans /etc/gitlab/gitlab.rb

gitlab_Rails['ldap_servers'] = YAML.load <<-'EOS'
   main: 
     label: 'My LDAP'
     # this was an IP address
     # Host: '10.10.10.12'
     Host: 'internal-ldap-server' # this is the fix
     port: 389

Après avoir modifié le fichier de configuration ci-dessus, assurez-vous de reconfigurer gitlab.

gitlab-ctl reconfigure
0
activedecay

J'ai eu cette erreur après avoir changé d'ordinateur. J'utilise SourceTree avec Bitbucket.

J'ai donc dû ajouter la clé SSH générée par SourceTree, sur le nouvel ordinateur, dans Paramètres Bitbucket> Sécurité> clés SSH, tout en étant connecté à mon compte Bitbucket sur le Web.

0
eby

Allez au terminal MINGW32 mettez cette commande: git branch --set-up-to = = Origin/(nom de la branche)

0
Juned Ahmed
user@server:/etc/nginx$ cat .git/config 
...
[remote "Origin"]
    url = [email protected]:user/.git
    fetch = +refs/heads/*:refs/remotes/Origin/*
...

  1. Utilisez ssh au lieu de https.
  2. Pour utiliser la clé ssh dans git (ajoutez la clé ssh).
  3. Si vous êtes root, utilisez la clé ssh.

$ Sudo ssh-keygen
$ cat /root/.ssh/id_rsa.pub 

$ git init
$ git add file
$ git commit -m "add first file"
$ git remote add Origin [email protected]:user/example.git 
$ git Push -u Origin master
0
Ernesto Sequeira

J'ai tout essayé, y compris générer une nouvelle clé, ajouter au compte Github, éditer .ssh/config et .git/config . Mais cela me donnait toujours la même erreur. Puis j'ai essayé de suivre la commande et cela fonctionne avec succès. 

ssh-agent bash -c ssh-add ~/.ssh/id_rsa; git clone [email protected]:username/repo.git'
0
Chetan Pangam

Lors de l’utilisation de PuTTY/pageant, assurez-vous de ne pas oublier d’ajouter la clé SSH appropriée à pageant, sinon cette erreur s’affiche. DUH 

0
mashup

je voulais juste partager le fait que j'ai trouvé une solution facile à cela:

Accès refusé . Fatal: Impossible de lire à partir du référentiel distant . Assurez-vous de disposer des droits d'accès appropriés Et que le référentiel existe

déconnectez-vous simplement de gitlab et reconnectez-vous. Les problèmes devraient alors être résolus.

0
nechama b

J'avais cette erreur en essayant de pousser du code vers mon git personnel - les valeurs par défaut pointent vers git. J'ai donc suivi ces étapes:

  1. Je suis allé sur mon compte personnel git et j'ai créé un dépôt avec des paramètres par défaut.
  2. Sur le terminal, git remote ajoute Origin [email protected]: /. Git
  3. git Push - Définissez Origin Master en amont, en vous assurant que Origin est en amont et que les prochains commits peuvent être effectués en utilisant uniquement git Push.

Pour une raison quelconque, aucun autre moyen n'a fonctionné pour moi. J'espère que cela aidera quelqu'un qui travaille avec 2 comptes git ou plus.

0
novembersky

J'ai eu la même erreur, ce qui m'a amené à cette réponse qui ne m'a pas aidé… .. J'essayais de créer un nouveau référentiel "nu" pour la première fois en utilisant les commandes ci-dessous pour suivre jusqu'à un emplacement NTFS:

cd myrepository
git init --bare \\myserver.mycompany.local\myrepository.git
git init
git status
git add .
git status
git commit -m "Initial Commit"
git remote add Origin \\myserver.mycompany.local\myrepository.git
git Push -u Origin master
git status

Mon problème s'est avéré utiliser les barres obliques inversées au lieu des barres obliques inversées à l'emplacement NTFS lors de la tentative d'ajout de l'origine pour définir la (nouvelle) branche en amont suivie.

J'ai dû supprimer l'Origin à l'aide de:

git remote rm Origin

Puis ajoutez à nouveau l'origine à l'aide des barres obliques attendues

git remote add Origin //myserver.mycompany.local/myrepository.git

J'espère que cela aidera quelqu'un dans le futur.

0
Mike