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)"
Попробуйте удалить переменную среды GIT_SSH с помощью unset GIT_SSH
, Это было причиной моей проблемы.
Обычно это вызвано тем, что ключ SSH не совпадает с удаленным.
Решения:
Перейдите в терминал и введите следующую команду (Mac, Linux) и замените ее на свой электронный идентификатор.
ssh-keygen -t rsa -C "you@email.com"
Скопируйте сгенерированный ключ, используя следующую команду, начиная со слова ssh.
cat ~ /.ssh / id_rsa.pub
- Вставьте его в github, bitbucket или gitlab, соответствующий вашему пульту.
- Сохрани это.
У меня такая же проблема.
Эта ошибка означает, что вы не указали свой удаленный URL-адрес, на который будет распространяться ваш код.
Вы можете установить удаленный URL двумя (в основном) способами:
Укажите удаленный URL с помощью команды Git Bash.
Перейдите в каталог вашего проекта
Open Git Bash
Выполнить команду:
git remote set-url origin <https://abc.xyz/USERNAME/REPOSITORY.git>
Упоминание удаленного 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, он будет работать.
Ссылка на эту ссылку
Если после команды "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/*
...
- Используйте ssh вместо https.
- Чтобы использовать ключ ssh в git (добавьте ключ ssh).
- Если вы 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
и это сработало.