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