Я пробовал поискать в Google и прочитал https://help.github.com/en/articles/connecting-to-github-with-ssh и различные руководства. Я не могу git push -u origin master
или git push origin master
(та же команда).
У меня есть учетная запись git как минимум 2 года или около того. Я успешно смог создать репозиторий и push -u origin master
отлично на своем ноутбуке, но на этом рабочем столе у меня проблемы.
Вот что я пробовал:
1. Я установил свое имя пользователя git
2. Я настроил свой адрес электронной почты пользователя git
3. Я загрузил содержимое моего /home/meder/.ssh/id_rsa.pub на страницу учетной записи github. Я подтвердил, что не вставлял пробелов
4. Я создал ~ / .ssh / config со следующим содержимым:
Host github.com
User git
Hostname github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Я изменил .ssh на 700, id_rsa 600
5. Я добавил правильный удаленный источник без опечаток :git remote add origin git@github.com:medero/cho.git
6. Чтобы подтвердить №5, вот мой .git / config. Каталог правильный, а не другой каталог:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@github.com:medero/cho.git
7. ssh git@github.com -v
дает мне успешную аутентификацию
8. Одна странность в том, что к нему t
добавлено имя пользователя, которым он меня приветствует . Мое имя пользователя на github - medero
нет medert
.
Привет, медерот! Вы успешно прошли аутентификацию, но GitHub не предоставляет доступ к оболочке.
9. Я не использую прокси или брандмауэр.
10. Предлагается ключ, вот выход из -v
:
debug1: Host 'github.com' is known and matches the RSA host key. debug1: Found key in /home/meder/.ssh/known_hosts:58 debug1: ssh_rsa_verify: signature correct debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug1: SSH2_MSG_NEWKEYS received debug1: SSH2_MSG_SERVICE_REQUEST sent debug1: SSH2_MSG_SERVICE_ACCEPT received debug1: Authentications that can continue: publickey debug1: Next authentication method: publickey debug1: Offering public key: /home/meder/.ssh/id_rsa debug1: Remote: Forced command: gerve mederot debug1: Remote: Port forwarding disabled. debug1: Remote: X11 forwarding disabled. debug1: Remote: Agent forwarding disabled. debug1: Remote: Pty allocation disabled. debug1: Server accepts key: { some stuff, dont know if i should share it debug1: Remote: Forced command: gerve mederot debug1: Remote: Port forwarding disabled. debug1: Remote: X11 forwarding disabled. debug1: Remote: Agent forwarding disabled. debug1: Remote: Pty allocation disabled. debug1: Authentication succeeded (publickey).
11. Вот какие команды я использовал.
mkdir cho
git init
touch README
git add README
git commit -m 'test'
git remote add origin git@github.com:medero/cho.git
git push -u origin master
12. Я не хочу создавать новый ключ SSH.
13. Если я git clone, используя ssh, сделаю edit, commit и git push, я получу то же самое.
14. Вот настоящая ошибка:
$ git push
ERROR: Permission to medero/cho.git denied to mederot.
fatal: The remote end hung up unexpectedly
15. Я установил свое имя пользователя github и токен github:
$ git config --global github.user medero $ git config --global github.token 0123456789yourf0123456789token Устанавливает токен GitHub для всех экземпляров git в системе
16. Я подтвердил, что мое имя пользователя github НЕ mederot
ИМЕЕТСЯ и мой токен github ПРАВИЛЬНО для страницы моей учетной записи (подтверждены первые 2 символа и последние 2 символа).
17. Для подтверждения # 16 ~ / .gitconfig содержит
[github]
token = mytoken...
user = medero
18. Я сделал, ssh-key add ~/.ssh/id_rsa
если это было необходимо ...
ТЕОРИЙ:
Я подозреваю, что есть что-то подозрительное, потому что, когда я аутентифицируюсь по ssh, приветствие пользователя есть, mederot
а не medero
, что является моим актом. Могло ли что-то в моей учетной записи github быть неправильно кешировано?
Я также подозреваю некоторую странность локального кеширования ssh, потому что если я mv ~/.ssh/id_rsa KAKA
и mv ~/.ssh/id_rsa.pub POOPOO
делаю ssh git@github.com -v
, он все равно аутентифицирует меня и говорит, что обслуживает мой /home/meder/.ssh/id_rsa, когда я его переименовал ?! Это нужно кешировать ?!
Ответы:
На шаге 18, я полагаю, вы имеете в виду
ssh-add ~/.ssh/id_rsa
? Если да, то это объясняет:... поскольку
ssh-agent
кэширует ваш ключ.Если вы посмотрите на GitHub, там есть учетная запись mederot . Ты уверен, что это не твое дело? GitHub не должен позволять добавлять один и тот же открытый ключ SSH к двум учетным записям, поскольку при использовании
git@github.com:...
URL-адресов он идентифицирует пользователя на основе ключа SSH. (То, что этого нельзя допускать, подтверждается здесь .)Итак, я подозреваю (в порядке убывания вероятности), что имеет место одно из следующих событий:
Если 1 не соответствует действительности, я бы сообщил об этом на GitHub, чтобы они могли проверить 2 или 3.
Больше :
ssh-add -l проверьте, существует ли более одного идентификатора, если да, удалите его с помощью ssh-add -d "этот ключевой файл"
источник
ssh-add ...
каждый раз, когда я хочу переключить логины github / ssh.ssh-add -d <keyfile>
не работает. (Удаление файлов произошло вручную.) Упомянутое вами кеширование необходимо как-то вручную перезагрузить. Как?ssh-add -d
-> «Не удалось установить соединение с вашим агентом аутентификации».ssh-add
было то, что сделало это для меня. Спасибо!После нескольких дней поиска в Google я обнаружил, что это единственный вопрос, похожий на мою ситуацию.
Однако я просто решил проблему! Поэтому я помещаю здесь свой ответ, чтобы помочь всем, кто ищет эту проблему.
Вот что я сделал:
Откройте «Keychain Access.app» (вы можете найти его в Spotlight или LaunchPad)
Выберите «Все товары» в категории
Искать "git"
Удалите все старые и странные предметы
Попробуйте нажать еще раз, и он просто РАБОТАЕТ
источник
old & strange
. Я собираюсь испортить кучу вещей ..?old & strange
означает старые элементы даты и неправильный адрес электронной почты или имя пользователя. Вы можете отсортировать таблицу поDate Modified
.Если проблема возникает в Windows, удалите учетные данные из истории Windows.
удалить учетные данные из git
источник
На Mac, если у вас есть несколько учетных записей GitHub и вы не используете SSH, принудительно выполните правильный вход, используя:
Это также работает, если у вас возникли проблемы с отправкой в частный репозиторий.
источник
Это из-за конфликта.
Очистить все ключи от ssh-agent
Добавьте ключ github ssh
Теперь он должен работать.
источник
ssh-add -D
удаляет все удостоверения, может быть полезно, если агент переходит в недопустимое состояние.Я использую Mac, и проблема решена путем удаления записи github из приложения для доступа к цепочке ключей: Вот что я сделал:
Вышеупомянутые шаги скопированы из @spyar для простоты.
источник
Я считаю, что решение такое же, как и в @spyar, которое представляет собой приложение Keychain Access , хранящее старое имя пользователя.
Для этой ситуации есть 2 решения:
Или
в
Надеюсь это поможет.
источник
Недавно я столкнулся с этой проблемой для старого репо на моем компьютере, который был загружен с помощью https. шаги 5 и 6 решили мою проблему, переустановив удаленный URL-адрес для моего репо с использования URL-адреса https на URL-адрес ssh
проверка пульта дистанционного управления использует URL-адрес https
затем повторно установите источник для использования URL-адреса ssh
проверка нового пульта
теперь может успешно
git push -u origin
Я все еще не уверен, какой параметр я бы изменил, что могло бы привести к сбою push, когда удаленный https, но это было решение моей проблемы
источник
У меня была такая же проблема, как и у вас. После долгого поиска в Google я обнаружил, что моя ошибка была вызвана тем, что несколько пользователей добавили один и тот же ключ в свои учетные записи.
Итак, вот мое решение: удалить ssh-ключ неправильного пользователя (я могу это сделать, потому что неправильный пользователь также является моей учетной записью). Если неверный пользователь не является вашей учетной записью, вам может потребоваться изменить свой ssh-ключ, но я не думаю, что это произойдет.
И я думаю, ваша проблема может быть вызвана опечаткой в имени вашей учетной записи.
источник
Эта проблема также вызвана:
Если вы используете mac / linux и используете ControlMaster в своем ~ / .ssh / config, могут быть запущены некоторые главные процессы управления ssh.
Чтобы найти их, запустите:
И убейте соответствующих.
источник
Я тоже столкнулся с этим, причиной этого для меня было то, что при клонировании репо, в которое я отправлял свои изменения, я взял URL-адрес клона из вкладки инкогнито, не входя в систему (я до сих пор не понимаю, как это влияет). Это по какой-то причине привело к тому, что git выбрал другую учетную запись пользователя. Когда я попробовал снова с правильной страницы входа, у меня все заработало, как обычно.
источник
Я столкнулся с этой ошибкой при использовании Travis CI для развертывания контента , который включал отправку изменений в репозиторий.
В конце концов я решил проблему, обновив токен личного доступа GitHub, связанный с учетной записью Travis, с
public_repo
разрешением доступа к области:источник