git: fatal: Не вдалося прочитати з віддаленого сховища


356

Я намагаюся налаштувати git з http://danielmiessler.com/study/git/#website, щоб керувати своїм сайтом.

Я дійшов до останнього кроку в інструкціях: веб-сайт git push + master: refs / heads / master

Я працюю за допомогою командного рядка git ming32 у 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.

Одна з проблем тут може полягати в тому, що програма шукає Bill@***.com. коли я підключаюсь через ssh до свого сайту, у мене є інше ім’я користувача (скажімо, "abc"). тож, можливо, це має бути abc@***.com. Якщо це так, я не знаю, як це змінити, або якщо я можу просунути псевдонім


1
У мене була така ж проблема, іноді ця помилка трапляється, коли сервер git недоступний або має щось на кшталт "внутрішня помилка сервера".
Morteza Ziyae

2
Спочатку перегляньте .git/configфайл і переконайтесь, що все в порядку. Для мене було вказано неправильне значення url та origin.
mixdev

Можливо, це дозволить вирішити проблему: help.github.com/articles/connecting-to-github-with-ssh
Гай Аврахам


Ви можете мені показати правильний порядок .git / config, а також .ssh / config ... тому що я заплутався у AIT жорсткому.
gumuruh

Відповіді:


134

Ви можете вказати ім'я користувача, яке SSH повинен надіслати віддаленій системі як частину URL-адреси вашого віддаленого пристрою. Поставте ім'я користувача, а потім ім'я @, перед іменем віддаленого хоста.

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

3
ps, чи є спосіб додати пароль, щоб мені не потрібно було його вводити?
LDN

15
редагуйте файл, у .git/configякому є параметр віддаленого URL
Sayanee

@ user61629: Я знаю, що я запізнююся на вечірку, але вам варто розглянути можливість використання пар приватних / відкритих ключів замість паролів.
code_dredd

Яке ім’я користувача? Ім'я користувача комп’ютера чи ім’я користувача github?
Агент Зебра

11
Для Github ви завжди використовуєте ім'я користувача git. Приклад: git@github.com:mayoff/uiimage-from-animated-gif.gitGithub з'ясовує вашу особу, дивлячись, який ключ SSH ви надсилаєте.
пограбувати майора

189

Ваш ключ ssh, швидше за все, був видалений із агента ssh

ssh-add ~/.ssh/id_rsa

де id_rsa - ключ ssh, пов'язаний з git repo


7
Це працювало для мене! Я тривалий час намагався налаштувати свій файл ~ / .ssh / config для використання різних ключів для різних хостів, думав, що цей файл - проблема. Зрештою, він мав використовувати праву клавішу для правильного хоста, але цей ключ був "видалений". тому ssh-add ~/.ssh/theKeyInQuestionя повернувся назад і працював з цим репо, не знав, що ключ видалений, або що "вилучений" навіть означає, але принаймні я зміг отримати автентифікацію знову. SSH - це загальна таємниця для мене навіть через місяці розгляду питань аутентифікації. Проблеми з агентом ssh - це ще одна річ, яку слід знати!
Алекс Боллбах

Дякую багато .. Це нарешті спрацювало для мене після спроби створити, видалити і т. Д. Ключі SSH в моєму акаунті GitLab .... Дякую !!
Bms bharadwaj

Це вирішило моє питання. У мене вже є доданий щойно створений ключ ssh на сервері. Цей ключ потрібно додати !!
Кашан

1
Це вирішило це для мене, я не розумію, чому .. Раніше це працювало і раптом ні, чи є процес, який видаляє ключ з агента, чи може це трапитися випадково?
Мігель Стівенс

Чому це відбувається? Він працював цілий день, але ввечері перестав працювати. Ця відповідь допомогла.
Андрій

130

Переконайтеся, що у вас є правильний URL .git/config

url = git@github.com:username/repo.git

Якщо це ваш перший поштовх, вам потрібно буде налаштувати правильну версію за течією

$ git push -u origin master

Ви можете перевірити, який ключ використовується:

$ ssh -vvv git@github.com

Відповідь повинна містити щось подібне:

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

Також можна визначити правила для ssh в ~/.ssh/config, наприклад, на основі псевдонімів:

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

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

Ви можете встановити з'єднання з різними портами, використовувати різні ім’я користувача тощо для кожного псевдоніма.


1
Дякую!! У якийсь момент, коли я клонував репо, urlбуло встановлено https://github.com/user/repo.git(без git@github.com), і він відмовився використовувати мій ключ SSH. Можливо, це тому, що я його клонував за допомогою GIthub для Windows спочатку (?)
Jedidja

Я повинен був змінити url = ssh://github.com/RaphaelBossek/dev-atlassian-jira-proman.gitдо url = ssh://git@github.com/RaphaelBossek/dev-atlassian-jira-proman.gitі він працював знову
Рафаель Bossek

Чорт, ти дивовижний. Я спробував так багато інших рішень. Мій URL був https: також :(
agrublev

-vvvНатяк був корисний для мене. Тепер я бачу, що він говорить "З'єднання закрите портом XXX.XXX.XXX.X 22".
Райан

Ahhh, DeployHQ каже: "БітБукет наразі має невеликі сервісні проблеми. Будь ласка, перегляньте їх сторінку статусу для отримання додаткової інформації. Status.bitbucket.org " Бінго.
Райан

123

Я до цього часу стикався з тим же питанням ...

мій .git / config був

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

Я замінив його на

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

і це працює зараз :)


8
як це не вищий рейтинг? git @ github для мене абсолютно не працює
hlitz

3
Якщо власник репо не встановив sshключі, у вас, швидше за все, виникне ця проблема. Виправлення, як зазначено, - використовувати httpsзамість цього або встановити власника репоssh
RyanNerd

@smileham перемикає віддалене посилання з репо-файлом із заснованого на ssh auth до протоколу https (він вимагає для usr / pwd, якщо потрібно)
Vincent Chalmel,

це правильна відповідь, вона спрацювала миттєво.
Kingston Fortune

Для всіх, хто git remote set-url ...помилився, як я АБО, хто нерозумно має алфавіт великої справи у своєму імені користувача (наприклад, PeDro), як я (!), Слід за цим. Це спрацювало :)
Pe Dro

23

Спробуйте видалити змінну середовища GIT_SSH за допомогою unset GIT_SSH. Це було причиною моєї проблеми.


1
Працює .. Цікаво, звідки я отримав змінну середовища
GIT_SSH:

1
Для Windows видаліть змінну середовища GIT_SSH із меню розширених параметрів. Працювали для мене.
splintercell

Як? Що я пишу в термінал, щоб це зробити?
агент Зебра

17

Переконайтесь, що ssh-агент працює, виконавши наступну команду на своєму терміналі:

eval $(ssh-agent -s)

Джерело: Документація Github


Це вирішує проблему і для мене. Спасибі
Ахмад

Це виправило і для мене. Чи потрібно щось робити, щоб переконатися, що це працює в майбутньому? Як поставити це як запис у моєму .zshrcфайлі?
Брейді Даулінг

14

Зазвичай це виникає через те, що ключ SSH не збігається з дистанційним.

Рішення:

  1. Перейдіть до терміналу і введіть наступну команду (Mac, Linux) замінити своїм ідентифікатором електронної пошти.

    ssh-keygen -t rsa -C "you@email.com"

  2. Скопіюйте згенерований ключ за допомогою наступної команди, починаючи зі слова ssh.

    кіт ~ / .ssh / id_rsa.pub

  3. Вставте його у github, bitbucket або gitlab відповідно до вашого пульта.
  4. Збережи це.

9

У мене була така ж проблема.

Ця помилка означає, що ви не вказали своє віддалене URL-адресу, на яке буде натискати ваш код.

Ви можете встановити віддалену URL-адресу двома (головним чином) способами:

  1. Вкажіть віддалену URL-адресу за допомогою команди виконання на Git Bash.

    • Перейдіть до каталогу проектів

    • Відкрийте Git Bash

    • Виконати команду:

      • git remote set-url origin <https://abc.xyz/USERNAME/REPOSITORY.git>
  2. Згадайте про віддалену URL-адресу безпосередньо у конфігураційному файлі

    • Перейдіть до каталогу проектів

    • Перехід до папки .git

    • Відкрийте конфігураційний файл у текстовому редакторі

    • Скопіюйте та вставте нижче рядків

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

Для більш детальної інформації перейдіть за цим посиланням .


8

Провівши кілька досліджень, я нарешті знайшов рішення для цього, ви оголосили змінну середовища до шляху plink.exe. Тож якщо ви видалите цей шлях, знову відкрийте git bash і спробуйте клонувати через SSH, він спрацює.

Перейдіть за цим посиланням

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


7

У мене була така ж помилка. Рішення було наступним: я виправив URL-адресу в .git/config. Щойно скопіював це з URL-адреси клонування HTTPS. Це було б щось подібне:

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

Це спрацювало.


Якщо я написав це у своєму конфігураційному файлі під Windows OS, помилка виникла по-іншому, вона сказала ... "/c/Users/asus/.ssh/config: рядок 5: Неправильний параметр конфігурації: url"
gumuruh

використання https over ssh - це добре, він запитує ім'я користувача та пароль
Кіран

4

Ще одне вирішення:

Іноді це трапляється зі мною через проблеми з мережею. Я не розумію кореневу проблему повністю, але перемикання на іншу підмережу або використання VPN вирішує її


Саме мій випадок. Бажаю, я прочитав цей коментар. Після кількох годин налагодження, думав про використання VPN, і це спрацювало.
Чайтанья

4

Якщо ви використовуєте Gitlab, ніж вам може знадобитися, щоб увійти та прийняти нові умови Gitlab, перш ніж спробувати потягнути або натиснути.


Чому потік? У той же день я вирішив свою проблему, це було пов'язане з новими термінами gitlab.
Марсело Агімовель

Вилучіть свій голос. Це правильна відповідь, це відбувається після зміни умов gitlab. Прийняття нових умов gitlab може вирішити проблему.
Марсело Агімовель

3

У вашому .git / config-файлі

[remote "YOUR_APP_NAME"]
    url = git@heroku.com:YOUR_APP_NAME.git
    fetch = +refs/heads/*:refs/remotes/YOUR_APP_NAME/*

І просто

git push YOUR_APP_NAME master:master 

3

У моєму випадку я використовував ключ ssh з паролем для автентифікації з github. Я не налаштував належним чином конкурс у Windows (лише в cygwin). Пропущені кроки мали вказати змінну середовища git_ssh на plink.exe. Крім того, вам потрібно ввійти github.com у плагіні відомих_хостів.

   plink github.com
   y
   <then ctrl-c>

Сподіваюся, це допомагає!

Я впевнений, що хотів би, щоб Intellij дав мені більш корисну помилку, а ще краще попросив мене ввести пароль ssh.


3

У мене був неправильний приватний ключ ssh для Bitbucket разом із правильним у агенті ssh.

Спочатку видалено всі клавіші

ssh-add -D

Потім додали лише праву клавішу.

ssh-add ~/.ssh/id_rsa

2

У моєму випадку я використовую корпоративну мережу (без підключення до Інтернету) в офісі. Для того, щоб витягнути код з github, я встановив https-проксі в gitbash, а потім використовую https замість ssh для витягування коду, він прекрасно працює. Однак, коли йдеться про push-код, проксі-сервер https не працюватиме. Таким чином, або перехід на Інтернет-мережу (з підключенням до Інтернету), або встановлення ssh-проксі може вирішити проблему.


2

Насправді я намагався багато речей, щоб змусити його працювати на Win7, оскільки змінив SSH exectun fron native на build-it і назад та та сама помилка. Випадково я зміню його на HTTPS у файлі ".git / config" як:

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

і нарешті спрацювало. Тож, можливо, це могло б працювати і для вас.


2

У мене була така ж проблема, і через деякий час я побачив, що я під користувачем root (з sudo -s). Нехай це допоможе комусь.


Я підтверджую, що навіть коли ви встановите ключ ssh на своїй машині та на BitBucket, він все одно відобразить цю помилку, якщо ви спробуєте виконати команду 'git pull' командою 'sudo'.
ElectroBuddha

2

Якщо після команди "git push origin master" команда u бачить помилку "не вдалося прочитати з віддаленого сховища", спробуйте це випробувати

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

У мене був прекрасний робочий git і раптом у мене з’явилася помилка, коли я намагався підштовхнути до майстра. Як я дізнався, це було через те, що у хоста сховища виникли проблеми.

Якщо ви використовуєте GitHub або Bitbucket, ви можете легко перевірити стан

https://status.github.com/messages або https://status.bitbucket.org/

введіть тут опис зображення


1

У мене була така ж помилка, яка привела мене до цієї відповіді, яка мені не допомогла. Я вперше намагався створити нове "оголене" сховище, використовуючи команди нижче, щоб відстежувати розташування 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

Моя проблема виявилася у використанні задньої косої риски замість передніх косої риски в місці розташування NTFS при спробі додати початкове місце для встановлення (нової) відстежуваної гілки вище за течією.

Мені довелося видалити походження за допомогою:

git remote rm origin

Потім знову додайте початок, використовуючи очікувані нахили вперед

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

Сподіваюся, це допоможе комусь у майбутньому.


1

У мене ця помилка після зміни комп'ютерів. Я використовую SourceTree з Bitbucket.

Тому мені довелося додати ключ SSH, сформований SourceTree, на новому комп’ютері в Налаштування Bitbucket> Захист> Ключі SSH, під час підключення до мого облікового запису Bitbucket в Інтернеті.


1

Я вирішив цю проблему, перезавантаживши термінал (відкрийте нове вікно / вкладку).

Тож якщо ви не дуже хочете / не потребуєте розуміння основної проблеми, тестовий метод варто спробувати, перш ніж копати глибше :)


0

Для тих, хто має цю проблему на приватному віддаленому РЕПО. переконайтеся, що ви прийняли угоду про Xcode на віддаленому сервері: на це виправлення знадобилося кілька тижнів

Використовуйте цю команду з командного рядка: sudo xcodebuild -license


0

Я просто хотів поділитися тим, що знайшов для цього просте виправлення:

У доступі відмовлено. fatal: Не вдалося прочитати з віддаленого сховища. Переконайтеся, що у вас є правильні права доступу та сховище існує.

просто вийдіть із gitlab та знову увійдіть. Потім проблеми повинні бути вирішені.


0

Використовуючи шпаклівку / виступ, переконайтеся, що ви не забули додати правильний ключ SSH до вибору, інакше ця помилка виявиться. DUH



0

Перехід до терміналу MINGW32 поставив цю команду: гілка git --set-upstream-to = origin / (назва гілки)


0

Якщо ви все ще отримуєте ту саму помилку, переконайтеся, що в налаштуваннях git-> ssh tab-> ssh-клієнт для використання встановлено OpenSSHвведіть тут опис зображення


0

Згідно з моїм досвідом, одна з причин виникнення цієї проблеми полягає в тому, що у вас нестабільне підключення до Інтернету .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.