'git push heroku master' vẫn đang yêu cầu xác thực


79

Tôi đã thực hiện:

$ heroku login

Nhưng khi tôi cố gắng đẩy, tôi vẫn được yêu cầu xác thực:

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

Sau đó, tôi nhận được CẢNH BÁO: Không xác thực bằng tên người dùng và mật khẩu bằng Git.

Tôi đã chạy lại đăng nhập heroku và xác thực thành công nhưng vẫn gặp lỗi tương tự.

Tôi đã kiểm tra điều khiển từ xa:

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

Tôi cũng đã tạo khóa công khai mới, chuyển nó cho Heroku và xác thực nó: https://devcenter.heroku.com/articles/keys

Tôi đang sử dụng Windows 8, với Git 1.9.5.


Cấu hình ssh của bạn trông như thế nào? Bạn đã thêm mục nhập máy chủ chưa?
drRobertz

1
Tôi đã khắc phục sự cố trong tệp cấu hình, như đã trả lời ở đây: stackoverflow.com/questions/16721428/… : /
Rea G

Có thể nhận xét của tôi chỉ có thể giúp được ít người, nhưng tôi thấy rằng lỗi này cũng xảy ra nếu tên tài khoản (tài khoản Windows) của bạn không phải ASCII. Tôi hy vọng rằng bình luận này có thể giúp ai đó!
James

Câu trả lời:


186

Tôi đã giải quyết vấn đề này bằng cách đăng nhập với những điều sau:

tên người dùng: email được sử dụng để đăng ký heroku (Cũng có thể để trống trường này )

mật khẩu: mã thông báo xác thực heroku ( API Key )

nơi mã thông báo xác thực có thể được truy xuất bằng $ heroku auth:tokenhoặc thông qua Cài đặt tài khoản trong Heroku


7
và để trống - bạn thực sự có nghĩa là 'trống' trong tên người dùng.
Jody Fitzpatrick

14
tốt, khi tôi thử "không có gì" thì nó báo mục nhập không hợp lệ. Khi tôi gõ vào "trống", nó hoạt động. Đây là trên một hệ thống cửa sổ.
Jody Fitzpatrick

@NunoFurtado, tuy nhiên, tôi đã giải đáp vấn đề của mình với câu trả lời ở đây: stackoverflow.com/questions/16721428/…
Rea G

4
Đã làm cho tôi! Bạn cũng có thể lấy chìa khóa auth trong dashboard.heroku.com/account -> API chính
dmikam

8
mặc dù điều này hoàn toàn không có ý nghĩa đối với tôi, nhưng nó đã hoạt động trên thực tế. ma thuật.
môi trường sống

29

Tôi đã gặp vấn đề tương tự (git không thể xác thực). Tình cờ là GIT muốn đọc dữ liệu xác thực từ tệp% HOME% / _ netrc và trên Windows bạn không có biến này (chỉ% USERPROFILE% và% HOMEDRIVE% +% HOMEPATH%)

tôi đặt HOME thành% USERPROFILE% (nơi lưu tệp heroku _netrc) và GIT bắt đầu hoạt động


Bạn lấy ở %USERPROFILE%đâu? Tôi cũng đã cố gắng đặt %HOME%thành một đường dẫn tuyệt đối nhưng tất cả những gì tôi nhận được là _netrctệp không được theo dõi . Không làm việc cho tôi.
mr5

Tôi đang thiết lập HOME=c:\users\razorvà đó là một nơi _netrc tập tin c:\users\razor\_netrcHeroku tạo
dao cạo

18

Đầu tiên tìm _netrctệp được tạo bởi heroku. Trong cửa sổ nó có thể được tìm thấy trong C:\Users\User Name\_netrc.

Tệp đó chứa thông tin đăng nhập cho git.heroku.com

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

Sử dụng thông tin đăng nhập và mật khẩu đó khi yêu cầu xác thực sau $ git push heroku masterlệnh


Đẹp! Cảm ơn bạn!
Nikita

Hoạt động như một sự quyến rũ.
skidadon

14

Từ tài liệu Heroku

Nhập các lệnh sau:

# 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

Tên người dùng: email bạn đã sử dụng để đăng ký
Mật khẩu Heroku : khóa API mà Heroku cung cấp cho bạn, trong Cài đặt tài khoản của bạn trên trang web Heroku

Điều này đã làm việc cho tôi


1
tại đây https://dashboard.heroku.com/account . Cuộn xuống màn hình và nhấn nút tiết lộ .. Cảm ơn @Sarah
Raziza O

8

Tôi có cùng một vấn đề. Lý do trong trường hợp của tôi, tôi đã vô tình sử dụng bảng điều khiển cửa sổ thay vì Git bash


Đi để chỉ ra rằng có thể có rất nhiều lý do đằng sau một cảnh báo.
Rea G

Tôi không thấy thế nào điều này có thể gây ra vấn đề này, thực sự tôi nghĩ rằng tôi đã sử dụng cửa sổ cmd ...
andy McCullough

ffs, bạn phải sử dụng Git bash?
Radu

Tôi gặp một lỗi khác sau khi sử dụng Git bash. Có lẽ tôi sẽ tiếp tụccmd
5

Bạn sẽ có thể sử dụng một trong hai. Hoặc cả hai. Nó chỉ phụ thuộc vào việc bạn có thiết lập bối cảnh của mình với thông tin đăng nhập heroku thích hợp hay không.
dvlsg

5

Đổi tên _netrctệp thành .netrctrên Windows 7 trong userdir phù hợp với tôi.

..sau khi thử tất cả các bước trong nhiều hướng dẫn khác.

Chạy lệnh thứ 3 trong cmd trong userdir của bạn hoặc toàn bộ kết hợp:

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

Trong trường hợp của tôi, tôi đã đăng nhập thông qua lời nhắc cmd của windows và muốn sử dụng thông tin đăng nhập trong Cygwin. Đổi tên các tập tin .netrctrong thư mục nhà của tôi làm git nhận ra nó
Sonata

3

Nếu ai đó vẫn đang gặp khó khăn với điều này, câu trả lời này đã giúp tôi rất nhiều Sử dụng khóa API Heroku .

Đầu tiên, như @Raziza O đã đề cập trong một nhận xét, để nhận khóa API heroku

https://dashboard.heroku.com/account . Cuộn màn hình xuống và nhấn nút hiển thị.

Sau đó, chỉ cần chạy git push https://heroku:$HEROKU_API_KEY@git.heroku.com/$HEROKU_APP_NAME.git HEAD:master



1

Điều này xảy ra vì git và heroku không sử dụng cùng một _netrctệp. Đây là điều tôi đang cố gắng khắc phục, nhưng bạn có thể giúp tôi bằng cách tìm vị trí _netrctệp của bạn nên ở đâu và nơi CLI đang đặt nó.

Sau đây sẽ xuất ra các nguồn tiềm năng về nơi _netrctệp có thể là:

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

Bạn có thể thử thêm _netrctệp vào một trong số chúng để tìm tệp phù hợp. Hãy cho tôi biết _netrctệp nào có tệp, và nơi bạn có thể đặt tệp và có git nhận tệp bằng cách không yêu cầu bạn nhập tên người dùng / mật khẩu.

Ngoài ra, hãy kiểm tra .gitconfigxem có bất kỳ trình trợ giúp thông tin xác thực git nào có thể gây ra sự cố hay không.



1

Chủ đề này đã cũ, tôi biết.

Tuy nhiên, không có giải pháp nào trước đây hiệu quả với tôi.

Vấn đề của tôi là "Windows Credentials" (hệ điều hành: Windows 10) có một thông tin đăng nhập khác trước đây được liên kết với Heroku (tài khoản công ty) và sử dụng thông tin này thay vì thông tin mới (tài khoản cá nhân của tôi).

Tôi phải truy cập: "Control Panel \ All Control Panel Items \ Credential Manager" (từ Control Panel) và sửa đổi tất cả thông tin đăng nhập: https://git.heroku.com (và tất cả những thông tin liên quan đến từ "heroku") với tài khoản hiện tại.

Tuy nhiên, mật khẩu tôi đã đặt API Khóa được hiển thị trong "Bảng điều khiển" của trang web và lệnh hoạt động: git push heroku master.

7 giờ mà cuộc đời sẽ không trả lại cho tôi. : /

2 xu của tôi.


0

Những gì tôi đã làm là mở git bash thay vì nhắc lệnh và nhập "git push heroku master". Nó hoạt động: D


0

Tôi đã sửa lỗi này bằng cách thay đổi địa chỉ http thành ssh://git@heroku/...


0

Có thể bạn đã đăng nhập vào herokuhai thiết bị đầu cuối và nếu bạn cố gắng chạy một lệnh trên thiết bị đầu cuối đầu tiên, nó sẽ báo lỗi như vậy, vì xác thực mới đã được thực hiện trong thiết bị đầu cuối thứ hai.

Đăng nhập lại bằng heroku loginvà chạy các lệnh trong thiết bị đầu cuối đó hoặc chạy các lệnh trong cửa sổ thứ hai đó (nếu bạn vẫn mở nó).


0

Tôi đã gặp vấn đề tương tự trên windows và sắp xếp nó chỉ bằng cách sử dụng PSW có sẵn trên tệp on _netrc, nó có thể được tìm thấy trong C: \ Users \ User Name_netrc.

Tôi hy vọng nó có thể giúp ích.


0

Đơn giản chỉ cần viết: $heroku login
Nó sẽ đưa bạn đến đăng nhập web. Nhập thông tin đăng nhập của bạn vào đó và bạn cũng sẽ được đăng nhập qua CLI.


0

Để tạo ra việc sử dụng mã thông báo heroku lâu dài:

heroku authorizations:create

Đầu ra mẫu:

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)

Sau đó sử dụng thông tin sau cho git:

username: blank (type the word blank)
pass: XXXXXXXX-XXXX-4ad5-ac64-44bbc01c2d95

0

Có thể đăng nhập bằng Khóa API Heroku (Cài đặt tài khoản -> Khóa API) như đã đề cập @andy mccullough, tuy nhiên, cần đăng nhập mỗi lần.

git fetch

đã giải quyết vấn đề trong trường hợp của tôi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.