У меня есть рабочая учетная запись GitHub и личная. Сначала я использовал личный для тестовых проектов, затем я пошел дальше и создал репозиторий с другой учетной записью на том же компьютере.
Теперь я снова хотел создать новый репозиторий в своей личной учетной записи, я изменил глобальный и локальный user.name
и создал новую пару ключей ssh, введенную на странице настройки GitHub. Затем я настроил каталог
git init
git remote add origin <url>
git push origin
но это теперь говорит мне
ОШИБКА: доступ к personaluser / newrepo.git запрещен
Я понятия не имею, как другая учетная запись связана с этой. .git/config
не показывает workusername
связанных вещей.
Если вы используете Windows 10, не торопитесь, чтобы прочитать ответ Раджана.
git
permissions
github
Раз Фаз
источник
источник
Ответы:
это звучит очень похоже на мою текущую работу. кажется, что вы уже настроили свой отдельный файл,
ssh-keys
поэтому вам также необходимо создать~/.ssh/config
файл и заполнить его информацией, подобной этой:Каждое свойство звучит довольно понятно, кроме
IdentitiesOnly
одного. Я не буду пытаться объяснять, для чего это нужно, но это в моей текущей настройке и работает нормально.Также стоит отметить, что
Host URL
это всего лишь указатель для получения правильных пользовательских настроек и не влияет на правильное получение файлов по вашему целевомуHostName
URL.Теперь вам просто нужно убедиться, что ваш
origin
(или любой другойremote
) URL-адрес соответствует правильномуHost
URL-адресу в ваших соответствующих репозиториях в зависимости от вашего имени пользователя. Если у вас уже есть существующие личные репозитории, вы можете отредактировать.git/config
файл этого репо в текстовом редакторе:или сделать это через командную строку:
Как и ваш рабочий:
или снова через командную строку:
Конечно, вы всегда можете указать один из своих
Host
URL-адресов в своем~/.ssh/config
файле какРаньше я только
work.github.com
для того, чтобы легче было видеть взаимосвязь конфигурации.После того, как все они настроены, вы сможете нажимать на каждый соответствующий пульт.
РЕДАКТИРОВАТЬ
Следует отметить, что я только что обнаружил, что если вы когда-нибудь устанавливаете глобальные значения конфигурации git для своих
user.email
значения (и я предполагаю,user.name
что также отправит другое значение), git покажет ваши коммиты как этот пользователь электронной почты. Чтобы обойти это, вы можете переопределить глобальные настройки конфигурации git в вашем локальном репозитории:Теперь он должен отправлять коммиты как правильный пользователь для этого репо.
источник
Перейдите в Панель управления> Учетные записи пользователей> Диспетчер учетных данных> Общие учетные данные.
удалите учетные данные git. Затем запустите git push. Будет предложено запросить учетные данные git. Введите свои правильные учетные данные.
источник
control /name Microsoft.CredentialManager
в командной строкеgit push
с ошибкой, он все время выдает одни и те же ошибки, даже после перезапуска терминала. Но все равно спасибо - в итоге это сэкономило мне много времениВы также можете просто переключиться на https, а не на ssh. Если вы используете https, он будет учитывать настройки .git / config. Итак, в .git / config измените:
url = git@github.com:USER/PROJECT.git
к
url = https://USER@github.com/USER/PROJECT.git
(эти значения на странице мерзавца проекта, нажмите на
SSH
иHTTP
кнопке стор Шарля новых значений);источник
https
заключается в том, что вам нужно вводить user / pass каждый раз, когда вы делаете apush
, если только нет какой-то конфигурации git, о которой я не знаюgit push https://username:pass@github.com/user/repo.git
тоже можете сделать это ... если вас устраиваетpass
история вашей оболочкиgithub идентифицирует вас по ключу ssh, который он видит, а не по какой-либо настройке из git.
Следовательно, вам необходимо убедиться, что ssh-ключ вашей рабочей учетной записи не находится в вашей связке ключей, когда вы пытаетесь нажать в качестве своей личной учетной записи, и наоборот. Используйте,
ssh-add -l
чтобы определить, какие ключи находятся в вашем связке ключей, иssh-add -d keyfile
чтобы удалить ключ из вашего связки ключей.Кроме того, вам может потребоваться проверить
~/.ssh/config
, настроили ли вы его для предоставления определенных ключей ssh в github. Наконец, я не знаю, как github работает с двумя учетными записями, имеющими один и тот же открытый ключ ssh, поэтому убедитесь, что вы этого не делаете.источник
GIT_SSH
переменную окружения, чтобы указать git использовать другую команду для ssh; в частности, вы можете использовать определенный ключ. См. Основную страницу руководства git или, возможно, этот вопрос .ssh-add -d keyfile
Недавно у меня была такая же проблема, потому что я создал новую учетную запись github. Я попробовал ответы выше, но это не помогло. Затем я увидел где-то сообщение об удалении github из Keychain Access (только если вы используете Mac ). Когда я git push, он запрашивает имя пользователя и пароль, и это сработало!
источник
У меня такая же проблема. Оказывается, у меня было две учетные записи на GitHub, использующие один и тот же ключ SSH, и GitHub по умолчанию использовал неправильную учетную запись, у которой не было разрешения на репо, которое я искал. Я удалил SSH-ключ из учетной записи, которую не использовал, все работало, как ожидалось.
Вы можете проверить, с какой учетной записью GitHub аутентифицирует себя:
Для меня это изначально показывало неправильное имя пользователя, но после удаления дублированного ключа SSH из этой учетной записи он затем показал правильное имя пользователя, и мое извлечение и нажатие на мое репо сработало хорошо.
источник
Я знаю, что это может быть немного поздно, но я застрял в этом довольно долго и, наконец, исправил это следующим образом:
Войдите в доступ к связке ключей (osX)
поиск git (убедитесь, что вы выбрали все элементы)
Надеюсь это поможет!
источник
Это способ сделать это: вы можете использовать разные конфигурации ssh для разных учетных записей ssh.
Обновлено 22 февраля:
Проверьте эту ссылку: https://gist.github.com/2351996
источник
Если изменение ключа SSH, связанного с учетной записью, не работает, измените адрес электронной почты, связанный с учетной записью.
Перейдите в Github> Настройки учетной записи> Электронная почта и убедитесь, что адрес электронной почты, который вы используете для фиксации, совпадает с адресом электронной почты в учетной записи.
Чтобы узнать, какой адрес электронной почты вы используете для фиксации, выполните следующую команду:
git config --global user.email
. Если вам нужно изменить адрес электронной почты, который вы используете для фиксации, запуститеgit config --global user.email "your_email@youremail.com"
.источник
У меня такая же проблема. В моем случае произошло следующее:
Ранее я сделал так, чтобы git не запрашивал мои учетные данные каждый раз, когда я разговариваю с удаленным репозиторием: git config --global credential.helper wincred
Я решил проблему, выполнив ту же команду с "none", заменив "wincred" git config --global credential.helper none
Затем git снова спросите мое имя пользователя / пароль, и все будет хорошо
источник
У меня тоже была эта проблема, но ни одно из других решений не помогло мне. Оказывается, для работы мы создали
.netrc
файл, в котором были записи для аутентификации github. Командаgit
всегда использовала тот.netrc
, который имел мое старое имя пользователя и пароль. Мне пришлось отредактировать записи в моем.netrc
файле, чтобы использовать новое имя пользователя и пароль.источник
Я нашел временное решение, в котором при первом запуске
killall ssh-agent
затем добавьте ключи ssh, сгенерированные для учетной записи, которую вам нужно использовать.ssh-add ~/.ssh/id_4shameer
Это единственный способ работы с несколькими учетными записями github, когда мы получим ошибку типа
ERROR: Permission to user/repo-git.git denied to username
.источник
Никогда не было проблем с git, пока на работе они недавно не подключили наши MacBook к Active Directory и добавили несколько учетных записей администратора на мою машину. Однако после этого git будет работать нормально, пока я не заблокирую свой экран и не вернусь. Тогда я бы получил неопределенную ошибку, похожую на
У меня есть только один ключ ssh на этой конкретной машине для моего пользователя, и я использую zsh в своем термине. Электронная почта и имя пользователя были правильными, поэтому проблема не в этом. Следовательно, перезапуск после каждого блокирования машины бесполезен. Решением для меня было отредактировать мой
.zshrc
файл и раскомментировать строку, экспортирующую ssh-ключ (чего мне никогда не приходилось делать раньше и я использую zsh в течение многих лет).Строка должна выглядеть примерно так:
Как только вы это сделаете, просто запустите
reset
терминал, и все будет работать нормально.Надеюсь, это поможет кому-то другому.
источник
Я хотел бы добавить - если вы работаете с учетной записью другого пользователя, убедитесь, что вы добавили себя в область соавторов в настройках репозиториев.
источник
Я тоже столкнулся с этой проблемой, и ни одно из вышеперечисленных решений не сработало даже после того, как я удалил свой ключ ssh и создал новый. Оказалось, что ssh-agent использовал кешированный ключ, поэтому мне пришлось запустить его,
killall ssh-agent
и он сработал.Нашел решение здесь. http://fzysqr.com/2012/08/28/quick-tip-wrong-ssh-key-cached-with-github-after-changing-users-and-keys/
источник