„git push heroku master” nadal prosi o uwierzytelnienie

79

Wykonałem:

$ heroku login

Ale kiedy próbuję push, wciąż jestem proszony o uwierzytelnienie:

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

Następnie pojawia się OSTRZEŻENIE: nie uwierzytelniaj się za pomocą nazwy użytkownika i hasła za pomocą Git.

Ponownie uruchomiłem logowanie heroku i pomyślnie uwierzytelniłem się, ale nadal otrzymuję ten sam błąd.

Sprawdziłem pilota:

$ git remote -v
heroku https://[email protected]/appname.git (fetch)
heroku https://[email protected]/appname.git (push)

Wygenerowałem również nowy klucz publiczny, przekazałem go do Heroku i zweryfikowałem: https://devcenter.heroku.com/articles/keys

Jestem na Windows 8, z Git 1.9.5.

Rea G
źródło
Jak wygląda twoja konfiguracja ssh? Czy dodałeś wpis hosta?
drRobertz
1
Naprawiłem problem w pliku konfiguracyjnym, jak odpowiedział tutaj: stackoverflow.com/questions/16721428/… : /
Rea G
Może mój komentarz może pomóc tylko kilku osobom, ale stwierdziłem, że ten błąd występuje również, jeśli twoja nazwa konta (konto Windows) składa się z spoza ASCII. Mam nadzieję, że ten komentarz może komuś pomóc!
James

Odpowiedzi:

186

Poradziłem sobie z tym, logując się za pomocą:

nazwa użytkownika: adres e-mail użyty do rejestracji w heroku ( mogłem również pozostawić to pole puste )

hasło: heroku token autoryzacji ( klucz API )

gdzie token $ heroku auth:tokenautoryzacji można pobrać za pomocą lub za pośrednictwem Ustawień konta w Heroku

andy mccullough
źródło
7
a puste - w rzeczywistości masz na myśli „puste” w nazwie użytkownika.
Jody Fitzpatrick,
14
cóż, kiedy próbuję „nic”, pojawia się informacja o nieprawidłowym wpisie. Kiedy wpisałem „puste”, zadziałało. To jest w systemie Windows.
Jody Fitzpatrick
@NunoFurtado, jednak odpowiedziałem na mój problem z odpowiedzią tutaj: stackoverflow.com/questions/16721428/…
Rea G
4
Pracował dla mnie! Możesz również uzyskać klucz
autoryzacji
8
chociaż nie miało to dla mnie absolutnie żadnego sensu, w rzeczywistości zadziałało. magia.
siedliska
29

Miałem ten sam problem (git nie mógł się uwierzytelnić). Zdarzyło się, że GIT chce odczytać dane autoryzacji z pliku% HOME% / _ netrc i na Windowsie nie masz tej zmiennej (tylko% USERPROFILE% i% HOMEDRIVE% +% HOMEPATH%)

ustawiłem HOME na% USERPROFILE% (miejsce, w którym heroku zapisał plik _netrc) i GIT zaczął działać

brzytwa
źródło
Gdzie dostaniesz %USERPROFILE%? Próbowałem również ustawić %HOME%bezwzględną ścieżkę, ale wszystko, co otrzymuję, to nieśledzony _netrcplik. Nie działa dla mnie.
mr5
Jestem ustawienie HOME=c:\users\razori jest to miejsce _netrc pliku c:\users\razor\_netrcHeroku stworzonego
maszynki
18

Najpierw znajdź _netrcplik utworzony przez heroku. W oknach można go znaleźć w C:\Users\User Name\_netrc.

Ten plik zawiera dane logowania dla git.heroku.com

machine git.heroku.com
     login [email protected]
     password xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Użyj tego loginu i hasła, gdy poprosisz o uwierzytelnienie po $ git push heroku masterpoleceniu

e11438
źródło
Miły! Dziękuję Ci!
Nikita
Działa jak marzenie.
skidadon
14

Z dokumentacji Heroku

Wprowadź następujące polecenia:

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

# Redirect tall HTTPS calls to SSH
$ git config --global url.ssh://[email protected]/.insteadOf https://git.heroku.com/
Rebs
źródło
12

Nazwa użytkownika: adres e-mail użyty do rejestracji w Heroku
Hasło: klucz API, który zapewnia Heroku, w ustawieniach konta na stronie Heroku

To zadziałało dla mnie

Sarah
źródło
1
tutaj https://dashboard.heroku.com/account . Opuść ekran i naciśnij przycisk ujawniania. Dzięki @Sarah
Raziza O
8

Mam dokładnie ten sam problem. Powód w moim przypadku przypadkowo użyłem konsoli okna zamiast Git bash

jlcj
źródło
Ma pokazać, jak wiele powodów może kryć się za jednym ostrzeżeniem.
Rea G
nie rozumiem, jak to może spowodować problem, właściwie myślę, że użyłem cmd systemu Windows ...
andy mccullough
ffs, masz użyć bash Git?
Radu
Po użyciu Git bash pojawia się kolejny błąd. Może będę się trzymaćcmd
mr5
Powinieneś móc użyć jednego z nich. Lub obydwa. Zależy to tylko od tego, czy masz skonfigurowany kontekst z odpowiednimi poświadczeniami heroku.
dvlsg
5

Zmiana nazwy _netrcpliku na .netrcw systemie Windows 7 w katalogu userdir działała dla mnie.

.. po wypróbowaniu wszystkich kroków w wielu innych samouczkach.

Uruchom trzecią komendę w cmd w swoim katalogu userdir lub w całej kombinacji:

setx HOME %USERPROFILE%
cd %HOME%
REN _netrc .netrc
Qwerty
źródło
W moim przypadku zalogowałem się za pomocą polecenia cmd systemu Windows i chciałem użyć poświadczeń w Cygwin. Zmiana nazwy pliku .netrcw moim folderze domowym sprawiła, że ​​git go rozpoznał
Sonata
1

Dzieje się tak, ponieważ git i heroku nie używają tego samego _netrcpliku. To jest coś, co próbuję naprawić, ale możesz mi pomóc, znajdując, gdzie _netrcpowinien być twój plik i gdzie umieszcza go CLI.

Poniższe informacje wyświetlą potencjalne źródła, w których _netrcmoże znajdować się plik:

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

Możesz spróbować dodać _netrcplik do jednego z nich, aby znaleźć ten, który pasuje. Daj mi znać, gdzie znajduje się ten _netrcplik i gdzie możesz go umieścić, i niech git go odbierze, nie pytając o nazwę użytkownika / hasło.

Sprawdź również, czy .gitconfigsą jakieś pomocniki poświadczeń git, które mogą powodować problem.

Jeff Dickey
źródło
1

Ten temat jest stary, wiem.

Jednak żadne z poprzednich rozwiązań nie zadziałało.

Mój problem polegał na tym, że „Poświadczenia systemu Windows” (system operacyjny: Windows 10) miały inne dane uwierzytelniające poprzednio powiązane z Heroku (konto firmowe) i używały tego zamiast nowego (moje konto osobiste).

Musiałem przejść do: „Panel sterowania \ Wszystkie elementy panelu sterowania \ Menedżer poświadczeń” (z Panelu sterowania) i zmodyfikować wszystkie poświadczenia: https://git.heroku.com (i wszystkie powiązane ze słowem „heroku”) z aktualnym rachunkiem.

Jednak hasło umieściłem w Key API, które jest wyświetlane w "Dashboard" witryny i polecenie działa: git push heroku master.

7 godzin, których życie mi nie zwróci. : /

Moje 2 centy.

1antares1
źródło
0

Zamiast wiersza poleceń otworzyłem git bash i wpisałem „git push heroku master”. Udało się: D

Khanh Nguyen
źródło
0

Naprawiłem to, zmieniając adres http na ssh://git@heroku/...

matsko
źródło
0

Prawdopodobnie zalogowałeś się do herokudwóch terminali i jeśli spróbujesz uruchomić polecenie na pierwszym terminalu, zgłosi taki błąd, ponieważ dokonano nowego uwierzytelnienia w drugim terminalu.

Albo logowanie ponownie z heroku logini uruchamiać polecenia w tym terminalu lub wykonywania poleceń w tym drugim oknie (jeśli masz go jeszcze otwarta).

Aleks
źródło
0

Miałem ten sam problem w systemie Windows i posortowałem go po prostu używając PSW dostępnego w pliku on _netrc, który można znaleźć w C: \ Users \ User Name_netrc.

Mam nadzieję, że to pomoże.

jose carlos Siqueira
źródło
0

Po prostu napisz: $heroku login
nastąpi przejście do logowania internetowego. Wprowadź tam swoje poświadczenia, a zostaniesz również zalogowany przez CLI.

shivesh kumar
źródło
0

Aby wygenerować długoterminowy token Heroku, użyj:

heroku authorizations:create

Przykładowe dane wyjściowe:

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)

Następnie użyj następujących informacji dla git:

username: blank (type the word blank)
pass: XXXXXXXX-XXXX-4ad5-ac64-44bbc01c2d95
Pedro Lobito
źródło
0

Możliwe było zalogowanie się za pomocą klucza Heroku API (Ustawienia konta -> Klucz API), jak wspomniano @andy mccullough, jednak logowanie było wymagane za każdym razem.

git fetch

zdecydowany problem w moim przypadku.

Nazar
źródło