'git push heroku master' все еще запрашивает аутентификацию

79

Я выполнил:

$ heroku login

Но когда я пытаюсь нажать, меня все равно просят пройти аутентификацию:

$ git push heroku master
Username for 'https://git.heroku.com': <email>
Password for 'https://<email>@git.heroku.com':

Затем я получаю ПРЕДУПРЕЖДЕНИЕ: не аутентифицируйтесь с помощью имени пользователя и пароля с помощью Git.

Я снова выполнил вход в систему heroku и успешно прошел аутентификацию, но все равно получаю ту же ошибку.

Я проверил пульт:

$ git remote -v
heroku https://git@heroku.com/appname.git (fetch)
heroku https://git@heroku.com/appname.git (push)

Я также создал новый открытый ключ, передал его в Heroku и проверил: https://devcenter.heroku.com/articles/keys

Я использую Windows 8 с Git 1.9.5.

Rea G
источник
Как выглядит ваша конфигурация ssh? Вы добавили запись о хосте?
drRobertz
1
Я исправил проблему в файле конфигурации, как ответил здесь: stackoverflow.com/questions/16721428/… : /
Rea G
Возможно, мой комментарий может помочь немногим, но я обнаружил, что эта ошибка также возникает, если ваше имя учетной записи (учетная запись Windows) состоит из не-ASCII. Надеюсь, что этот комментарий кому-то поможет!
Джеймс

Ответы:

186

Я обошел это, войдя в систему со следующим:

имя пользователя: адрес электронной почты, использованный для регистрации на heroku (также можно было оставить это поле пустым )

пароль: heroku auth token ( API Key )

где токен аутентификации можно получить $ heroku auth:tokenв настройках учетной записи в Heroku или через них.

Энди Маккалоу
источник
7
а под пустым - вы фактически имеете в виду «пустое» в имени пользователя.
Джоди Фицпатрик
14
ну, когда я пробую "ничего", он говорит о недопустимой записи. Когда я набрал «пустой», это сработало. Это в системе Windows.
Джоди Фитцпатрик
@NunoFurtado, однако я ответил на свою проблему ответом здесь: stackoverflow.com/questions/16721428/…
Rea G
4
Сработало у меня! Вы также можете получить ключ
авторизации
8
хотя для меня это не имело абсолютно никакого смысла, на самом деле это сработало. магия.
Среда обитания
29

У меня была такая же проблема (git не смог пройти аутентификацию). Случилось так, что GIT хочет прочитать данные аутентификации из файла% HOME% / _ netrc, а в Windows у вас нет этой переменной (только% USERPROFILE% и% HOMEDRIVE% +% HOMEPATH%)

Я установил HOME в% USERPROFILE% (место, где heroku сохранил файл _netrc), и GIT начал работать

бритва
источник
Куда вы попали %USERPROFILE%? Я также попытался установить %HOME%абсолютный путь, но все, что я получил, - это _netrcфайл без отслеживания . У меня не работает.
mr5
Я устанавливаю HOME=c:\users\razorи это место _netrc файла c:\users\razor\_netrcHeroku созданного
бритвенного
18

Сначала найдите _netrcфайл, созданный heroku. В окнах его можно найти в C:\Users\User Name\_netrc.

Этот файл содержит учетные данные для git.heroku.com

machine git.heroku.com
     login abcd123@gmail.com
     password xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Используйте этот логин и пароль при запросе аутентификации после $ git push heroku masterкоманды

e11438
источник
Ницца! Спасибо!
Никита
Работает как шарм.
skidadon
14

Из документации Heroku

Введите следующие команды:

# Enable SSH authentication
$ heroku create --ssh-git

# Redirect tall HTTPS calls to SSH
$ git config --global url.ssh://git@heroku.com/.insteadOf https://git.heroku.com/
Ребс
источник
12

Имя пользователя: адрес электронной почты, который вы использовали для регистрации на Heroku.
Пароль: ключ API, который вам предоставляет Heroku, в настройках вашей учетной записи на веб-сайте Heroku.

Это сработало для меня

Сара
источник
1
здесь https://dashboard.heroku.com/account . Прокрутите экран вниз и нажмите кнопку открытия .. Спасибо @Sarah
Raziza O
8

У меня точно такая же проблема. Причина в моем случае, я случайно использовал оконную консоль вместо Git bash

jlcj
источник
Показывает, как может быть много причин за одним предупреждением.
Rea G
Я не понимаю, как это могло вызвать проблему, на самом деле, я думаю, что использовал Windows cmd ...
Энди Маккалоу
ffs, вы должны использовать Git bash?
Radu
Я получаю еще одну ошибку после использования Git bash. Может быть, я буду придерживатьсяcmd
mr5
Вы сможете использовать и то, и другое. Или оба. Это просто зависит от того, настроен ли ваш контекст с правильными учетными данными heroku.
dvlsg 07
5

У меня сработало переименование _netrcфайла в .netrcWindows 7 в userdir.

..пробовав все шаги из многих других руководств.

Выполните третью команду в cmd в вашем userdir или всю комбинацию:

setx HOME %USERPROFILE%
cd %HOME%
REN _netrc .netrc
Qwerty
источник
В моем случае я выполнил вход через командную строку Windows и хотел использовать учетные данные в Cygwin. Переименование файла .netrcв моей домашней папке заставило git его распознать
Sonata
3

Если кто-то все еще борется с этим, этот ответ мне очень помог Использовать ключ API Heroku .

Во-первых, как @Raziza O упомянул в комментарии, чтобы получить ключ API heroku

https://dashboard.heroku.com/account . Сверните экран вниз и нажмите кнопку открытия.

Тогда просто беги git push https://heroku:$HEROKU_API_KEY@git.heroku.com/$HEROKU_APP_NAME.git HEAD:master

Мохамед Розза
источник
1

Это происходит потому, что git и heroku не используют один и тот же _netrcфайл. Это то, что я пытаюсь исправить, но вы можете помочь мне, узнав, где находится ваш_netrc должен находиться файл и куда его помещает интерфейс командной строки.

Следующее выведет потенциальные источники того, где _netrcможет быть файл:

> echo %HOME%
> echo %HOMEDRIVE%%HOMEPATH%
> echo %USERPROFILE%

Вы можете попробовать добавить _netrcфайл в один из них, чтобы найти подходящий. Дайте мне знать, где находится _netrcфайл, и где вы можете его поместить, чтобы git забрал его, не запрашивая у вас имя пользователя / пароль.

Также проверьте, .gitconfigесть ли какие-либо помощники по учетным данным git, которые могут вызывать проблему.

Джефф Дики
источник
1

Это старая тема, я знаю.

Однако ни одно из предыдущих решений у меня не помогло.

Моя проблема заключалась в том, что «Учетные данные Windows» (ОС: Windows 10) имели другие учетные данные, ранее связанные с Heroku (учетная запись компании), и использовали их вместо новой (моя личная учетная запись).

Мне пришлось перейти в: «Панель управления \ Все элементы панели управления \ Диспетчер учетных данных» (из панели управления) и изменить все учетные данные: https://git.heroku.com (и все те, которые связаны со словом «героку») с текущим счетом.

Однако пароль, который я поместил в Key API, отображается в «Личном кабинете» сайта, и команда работает: git push heroku master.

7 часов, которые мне жизнь не вернет. : /

Мои 2 цента.

1antares1
источник
0

Я открыл git bash вместо командной строки и набрал «git push heroku master». Это сработало: D

Хан Нгуен
источник
0

Я исправил это, изменив http-адрес на ssh://git@heroku/...

Мацко
источник
0

Вероятно, вы вошли в систему на herokuдвух терминалах, и если вы попытаетесь запустить команду на первом терминале, он сообщит об ошибке, так как во втором терминале была произведена новая аутентификация.

Либо Войти снова с heroku loginи выполнять команды в этом терминале, или запускать команды в этом втором окне (если у вас есть еще открыты).

Алекс
источник
0

У меня была такая же проблема с Windows, и я отсортировал ее, просто используя PSW, доступный в файле _netrc, который можно найти в C: \ Users \ User Name_netrc.

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

Хосе Карлос Сикейра
источник
0

Просто напишите: $heroku login
это приведет вас к веб-авторизации. Введите там свои учетные данные, и вы также войдете в систему через CLI.

Шивеш Кумар
источник
0

Чтобы сгенерировать долгосрочное использование токена heroku:

heroku authorizations:create

Пример вывода:

Creating OAuth Authorization... done
Client:      <none>
ID:          XXXXXXXX-XXXX-4c9c-85f2-554f0f0c14fa
Description: Long-lived user authorization
Scope:       global
Token:       XXXXXXXX-XXXX-4ad5-ac64-44bbc01c2d95
Updated at:  Wed Mar 04 2020 12:00:00 GMT+0000 (Greenwich Mean Time) (less than a minute ago)

Затем используйте следующую информацию для git:

username: blank (type the word blank)
pass: XXXXXXXX-XXXX-4ad5-ac64-44bbc01c2d95
Педро Лобито
источник
0

Можно было войти в систему с помощью ключа API Heroku (Настройки учетной записи -> Ключ API), как упоминалось @andy mccullough, однако вход в систему требовался каждый раз.

git fetch

решил проблему в моем случае.

Назар
источник