git: fatal: не удалось прочитать из удаленного хранилища

Я пытаюсь настроить git с http://danielmiessler.com/study/git/ для управления моим сайтом.

Я добрался до последнего шага в инструкции: Git Push Website + 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. Если это так, я не знаю, как это изменить или я могу нажать под псевдонимом

65 ответов

Решение

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

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

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

ssh-add ~/.ssh/id_rsa

где id_rsa - это ключ ssh, связанный с git repo

Я столкнулся с той же проблемой некоторое время назад...

мой.git/config имел

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

Я заменил его

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

и теперь это работает:)

Убедитесь, что у вас есть правильный 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"

Вы можете установить соединение с разными портами, использовать разные имена пользователей и т. Д. Для каждого псевдонима.

У меня был неправильный закрытый ключ ssh для Bitbucket вместе с правильным в ssh agent.

Сначала удалил все ключи

ssh-add -D

Потом добавил только нужный ключ.

ssh-add ~/.ssh/id_rsa

Убедитесь, что ssh-agent запущен: eval "$ (ssh-agent -s)"

https://help.github.com/articles/generating-ssh-keys/

Попробуйте удалить переменную среды GIT_SSH с помощью unset GIT_SSH, Это было причиной моей проблемы.

Обычно это вызвано тем, что ключ SSH не совпадает с удаленным.

Решения:

  1. Перейдите в терминал и введите следующую команду (Mac, Linux) и замените ее на свой электронный идентификатор.

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

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

    cat ~ /.ssh / id_rsa.pub

  3. Вставьте его в github, bitbucket или gitlab, соответствующий вашему пульту.
  4. Сохрани это.

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

Эта ошибка означает, что вы не указали свой удаленный URL-адрес, на который будет распространяться ваш код.

Вы можете установить удаленный URL двумя (в основном) способами:

  1. Укажите удаленный URL с помощью команды Git Bash.

    • Перейдите в каталог вашего проекта

    • Open 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/*

Для более подробной информации перейдите по этой ссылке.

Другой обходной путь:

Иногда это происходит со мной из-за проблем с сетью. Я не полностью понимаю проблему с правами root, но решение проблемы с переключением на другую подсеть или с использованием VPN

Довольно простое решение, которое сработало для меня здесь => Используйте HTTPS с портом 443.

У меня была такая же ошибка. Решение было следующим: я исправил свой URL в .git/config, Просто скопировал это из URL-адреса клонирования HTTPS. Это было бы что-то вроде этого:

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

Это сработало.

Проведя некоторые исследования, я наконец-то нашел решение для этого, вы объявили переменную окружения в путь plink.exe. Поэтому, если вы удалите этот путь, снова откройте git bash и попробуйте клонировать через SSH, он будет работать.

Ссылка на эту ссылку

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

Если после команды "git push origin master" вы видите ошибку "не удалось прочитать из удаленного репозитория", попробуйте это

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 

Я столкнулся с той же проблемой. так вот как я решил то же самое

Шаг 1:

создайте новый ключ ssh:-

      ssh-keygen -t ed25519 -C "your_email@example.com"

Шаг 2:

скопируйте ключ SSH в буфер обмена:-

      pbcopy < ~/.ssh/id_ed25519.pub 

Шаг 3:

теперь вставьте скопированный ключ ssh в соответствующий репозиторий git.

Шаг 4: Запустите ssh-агент в фоновом режиме.

      $ eval "$(ssh-agent -s)"
> Agent pid 59566

Шаг 5: теперь попробуйте получить доступ к репозиторию


Шаг 6:

если вы все еще видите проблему, проверьте файл конфигурации ssh

      vim ~/.ssh/config

содержимое должно выглядеть так

      Host github.com
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_ed25519

Шаг 7:

Добавьте свой закрытый ключ SSH в ssh-агент и сохраните свою парольную фразу в связке ключей.

      ssh-add --apple-use-keychain ~/.ssh/id_ed25519

Шаг 8:

Теперь попробуйте еще раз, должно сработать

      git clone git@github.com:username/repo-name.git

В вашем файле.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 

Я пробовал все, включая создание нового ключа, добавление в учетную запись Github, редактирование .ssh/config и .git / config. Но все же это давало мне ту же ошибку. Затем я попробовал следующую команду, и она успешно работает.

ssh-agent bash -c ssh-add ~/.ssh/id_rsa; git clone git@github.com:username/repo.git'

Вам нужно использовать HTTPS для Git:

Введите это в Терминал:

$ git remote set-url origin abc@***.com:path/to/httpURLRepo

Затем зафиксируйте:

$ git add .
$ git commit -m "This is the commit message"

Если вы используете Gitlab, вам может потребоваться войти в систему и принять новые условия Gitlab, прежде чем пытаться вытащить или нажать.

У меня был прекрасно работающий мерзавец, и внезапно я получил эту ошибку, когда попытался подтолкнуть к мастеру. Как я выяснил, это произошло из-за проблем с хостом хранилища.

Если вы используете GitHub или Bitbucket, вы можете легко проверить статус на

https://status.github.com/messages или https://status.bitbucket.org/

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

В моем случае пользовательский интерфейс настройки ssh-ключа bitbucket сбивает с толку.

Настройки репозитория -> Ключи доступа -> Добавить ключ: Ошибка

Персональные настройки -> Ключи SSH -> Добавить ключ: ОК

Экран регистрации открытого ключа является взаимоисключающим. Вы должны зарегистрировать открытый ключ только в одном месте. Вроде бы хорошо объединить их на одном экране.

Если у вас есть несколько пользователей, обращающихся к одному и тому же серверу git из одной и той же клиентской системы, для попытки доступа к серверу может быть использован неверный ключ доступа.

ssh -T git@gitlab.com

Эта команда покажет, с каким пользователем вы активно пытаетесь нажать.

Простое решение - удалить неиспользуемый открытый ключ пользователя с сервера git.

Затем попробуйте git fetch, pull или push.

user@server:/etc/nginx$ cat .git/config 
...
[remote "origin"]
    url = git@gitlab.com:user/.git
    fetch = +refs/heads/*:refs/remotes/origin/*
...

  1. Используйте ssh вместо https.
  2. Чтобы использовать ключ ssh в git (добавьте ключ ssh).
  3. Если вы root, используйте ключ 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 git@gitlab.com:user/example.git 
$ git push -u origin master

В моем случае я использую корпоративную сеть (без подключения к интернету) в офисе. Чтобы вытащить код из github, я установил https прокси в gitbash, а затем использовал https вместо ssh, чтобы вытащить код, он работает нормально. Однако, когда приходит push-код, прокси https не будет работать. Таким образом, либо переключение в сеть Интернет (с подключением к Интернету), либо установка прокси-сервера ssh могут решить проблему.

Моя проблема была решена с помощью этих команд в Windows 11

1. Я открыл команду Git Bash и запустил ssh-agent.

      eval "$(ssh-agent -s)" // this command only work in git bash.

2. Добавляется по ssh-ключу

      ssh-keygen -t rsa -b 4096 -C "your_email@example.com"  //it must be 4096
ssh-add id_rsa

3. Проверить правильно добавили или нет.

      ssh-add -l

4. Загрузил свой публичный ключ на GitHub как (Ключ авторизации)

      cat id_rsa.pub | clip

5. Отключите любой прокси и переменную GIT_SSH.

      unset GIT_SSH
git config --global --unset http.proxy
git config --global --unset https.proxy

6. Необходимо проверить, разрешен ли github.com.

      ping github.com

7. Теперь проверьте подключение к Github.

      ssh -T git@github.com

Выход

Подлинность хоста «github.com (20.207.73.82)» не может быть установлена. Отпечаток ключа ED25519: SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Этот ключ не известен ни под каким другим именем. Вы уверены, что хотите продолжить подключение (да/нет/[отпечаток пальца])? да Предупреждение: «github.com» (ED25519) навсегда добавлен в список известных хостов. Привет МхамзаРаджпут! Вы успешно прошли аутентификацию, но GitHub не предоставляет доступ к оболочке.

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

   plink github.com
   y
   <then ctrl-c>

Надеюсь это поможет!

Я уверен, что intellij дал бы мне более полезную ошибку или, что еще лучше, попросил ввести пароль ssh.

Я столкнулся с проблемой прямо сейчас и исправил ее: git config user.email "youremail".


обновление: я нашел основную причину, возможно, моя плохая сеть и плохой прокси.

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

Так что если вы действительно не хотите / не должны понимать основную проблему, стоит попробовать метод тестирования, прежде чем копать глубже:)

Я решил эту проблему, изменив свойurlот

      https://gitlab.com/{gitlab_user}/project_repo.git

к

      https://{gitlab_user}@gitlab.com/gitlab_user/project_repo.git

используя команду

      git remote set-url https://{gitlab_user}@gitlab.com/gitlab_user/project_repo.git

В моем случае я пытался клонировать с помощью sudo. Согласно документу Github, вы не должны использовать sudo с git clone:https://help.github.com/en/github/authenticating-to-github/error-permission-denied-publickey

Я дал текущему пользователю разрешение редактировать каталог (Debian 9):

chown myuser:root .

Затем клонировали без sudo и это сработало.

Другие вопросы по тегам