„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://git@heroku.com/appname.git (fetch)
heroku https://git@heroku.com/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.


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


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ć


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 abcd123@gmail.com
     password xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

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


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://git@heroku.com/.insteadOf https://git.heroku.com/

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


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


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

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.



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.


0

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


0

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


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


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.


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.


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

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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.