'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 login та пройшов автентифікацію, але все одно отримую ту саму помилку.

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

$ 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.


Як виглядає ваша конфігурація ssh? Ви додали запис хоста?
drRobertz

1
Я вирішив проблему у файлі конфігурації, як відповів тут: stackoverflow.com/questions/16721428/… : /
Rea G

Можливо, мій коментар може допомогти лише кільком людям, але я виявив, що ця помилка також виникає, якщо ваше ім'я облікового запису (обліковий запис Windows) складається з не ASCII. Сподіваюся, що цей коментар може комусь допомогти!
Джеймс,

Відповіді:


186

Я обійшов це, увійшовши в систему наступним чином:

ім'я користувача: електронна адреса, яка використовується для реєстрації на heroku (також це поле можна залишити пустим )

пароль: маркер автентифікації heroku ( ключ API )

де маркер автентифікації можна отримати за $ heroku auth:tokenдопомогою або через Налаштування облікового запису в Heroku


7
а під порожнім - ви насправді маєте на увазі "порожній" в імені користувача.
Джоді Фіцпатрік,

14
ну, коли я намагаюся "нічого", це говорить про недійсний запис. Коли я вводив "пусте", це спрацьовувало. Це в системі Windows.
Джоді Фіцпатрік

@NunoFurtado, однак я відповів на свою проблему відповіддю тут: stackoverflow.com/questions/16721428/…
Rea G

4
Працював у мене! Ви також можете отримати ключ автентифікації на dashboard.heroku.com/account -> Ключ API
dmikam

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\_netrcстворив
бритва

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команди


Приємно! Дякую!
Микита

Працює як шарм.
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


Збирається показати, як за одним попередженням може бути безліч причин.
Rea G

я не розумію, як це може спричинити проблему, насправді я думаю, що я використовував windows cmd ...
andy mccullough

ffs, ти повинен використовувати Git bash?
Раду

Після використання Git bash я отримую чергову помилку. Можливо, я дотримуватимусьcmd
mr5

Ви повинні мати можливість використовувати будь-який. Або обидва. Це лише залежить від того, чи встановлено ваш контекст із належними обліковими даними heroku.
dvlsg

5

Перейменування _netrcфайлу .netrcна Windows 7 в userdir мені вдалося .

..спробувавши всі кроки в багатьох інших навчальних посібниках.

Запустіть 3-ю команду в cmd у вашому userdir або в цілому комбінованому списку:

setx HOME %USERPROFILE%
cd %HOME%
REN _netrc .netrc

У моєму випадку я здійснив вхід через підказку Windows cmd і хотів використовувати облікові дані в Cygwin. Перейменування файлу .netrcв моїй домашній папці змусило git його розпізнати
Соната,

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має бути ваш файл і куди його кладе CLI.

Нижче наведено потенційні джерела, де _netrcможе знаходитись файл:

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

Можна спробувати додати _netrcфайл в один із них, щоб знайти той, що відповідає. Повідомте мене, який має_netrc файл, і куди ви можете його помістити, і git забрати його, не запитуючи у вас ім’я користувача / пароль.

Також перевірте, .gitconfigчи немає помічників git-облікових даних, які можуть спричинити проблему.



1

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

Однак жодне з попередніх рішень не спрацювало для мене.

Моя проблема полягала в тому, що у "Повірених даних Windows" (ОС: Windows 10) був ще один обліковий запис, раніше пов’язаний з Heroku (обліковий запис компанії), і він використовував цей замість нового (мій особистий рахунок).

Мені довелося перейти до: "Панель керування \ Усі елементи панелі керування \ Диспетчер облікових даних" (з Панелі керування) і змінити всі облікові дані: https://git.heroku.com (і всі, пов'язані зі словом "heroku") з рахунком поточним.

Однак пароль я розмістив API ключа, який відображається на "Інформаційній панелі" сайту, і команда працює: git push heroku master.

7 годин, які життя мені не поверне. : /

Мої 2 центи.


0

Що я зробив, це відкрив git bash замість командного рядка та ввів "git push heroku master". Це спрацювало: D



0

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

Або ввійдіть ще раз за допомогою heroku loginкоманд і запустіть команди в цьому терміналі, або запустіть команди у цьому другому вікні (якщо він все ще відкритий).


0

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

Сподіваюся, це може допомогти.


0

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


0

Щоб згенерувати довготривалий токен героку:

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

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

git fetch

вирішив проблему в моїй справі.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.