Kết quả đẩy Git trong xác thực không thành công


704

Tôi đã được sử dụng Github cho một thời gian ngắn và tôi đã tốt với git add, git commitgit pushcho đến nay không có vấn đề. Đột nhiên tôi gặp một lỗi nói:

gây tử vong: Xác thực thất bại

Trong thiết bị đầu cuối, tôi đã sao chép một kho lưu trữ, làm việc trên một tệp và sau đó tôi sử dụng git addđể thêm tệp vào nhật ký cam kết và khi tôi làm git commit, nó hoạt động tốt. Cuối cùng, git pushyêu cầu tên người dùng và mật khẩu. Tôi đặt chúng chính xác và mỗi lần tôi làm điều này, nó đều báo lỗi tương tự.

Có ai có ý tưởng gì về nguyên nhân của vấn đề này không và làm thế nào tôi có thể khắc phục nó?

Nội dung của .git/config:

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[remote "origin"]
        url = http://www.github.com/######/Random-Python-Tests
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master
[user]
        name = #####
        email = ############

Tên người dùng của bạn trên github là gì và nội dung của .git / config là gì?
mnagel

thêm nó vào câu hỏi, ý kiến ​​không đối phó với văn bản dài
mnagel

Vâng xin lỗi, tôi bắt đầu bình luận theo thói quen sau đó thay đổi nó.
zkirkland

Url của bạn không đúng Tôi nghĩ rằng nó nên bắt đầu với https://, không http://.
John Szakmeister

Đã thay đổi thành https ... không hoạt động.
zkirkland

Câu trả lời:


1202

Nếu bạn đã bật xác thực hai yếu tố trong tài khoản Github của mình, bạn sẽ không thể đẩy qua HTTPS bằng mật khẩu tài khoản của mình. Thay vào đó, bạn cần tạo mã thông báo truy cập cá nhân. Điều này có thể được thực hiện trong cài đặt ứng dụng của tài khoản Github của bạn. Sử dụng mã thông báo này làm mật khẩu sẽ cho phép bạn đẩy vào kho lưu trữ từ xa thông qua HTTPS. Sử dụng tên người dùng của bạn như bình thường.

https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/

Bạn cũng có thể cần cập nhật nguồn gốc cho kho lưu trữ của mình nếu được đặt thành https:

git remote -v 
git remote remove origin 
git remote add origin git@github.com:user/repo.git  

5
Thật. +1. Tôi giới thiệu PAT ở đây stackoverflow.com/a/19223896/6309 và chi tiết quá trình ở đó: stackoverflow.com/a/18607931/6309
VonC

3
Tôi cần tạo mới các khóa rsa của mình để các hoạt động Git bình thường hoạt động sau khi bật 2FA.
R11G

5
Cảm ơn bạn! Chỉ cần có lỗi này và điều này đã giúp, chỉ để chỉ ra. Khi bạn đã tạo mã thông báo truy cập cá nhân, bạn sao chép mã đó khi bạn đẩy repo, nó sẽ hỏi tên người dùng và mật khẩu của bạn. Dán mã thông báo truy cập vào mật khẩu
pourmesomecode

87
bạn cũng có thể làm git remote add origin https://username:access-token@github.com/username/repo.gitđể lưu trữ mã thông báo truy cập cá nhân của mình.
mailmindlin

2
Đối với tôi, tất cả những gì tôi phải làm là kích hoạt xác thực SSH từ máy cục bộ trên tài khoản GitHub của mình và sau đó chuyển sang địa chỉ từ xa ssh git; help.github.com/articles/changing-a-remote-s-url
user5359531

603

Hãy thử các bước sau để chỉnh sửa hoặc xóa thông tin đăng nhập đã lưu:

  1. Nhấp vào Bắt đầu
  2. Loại: Trình quản lý thông tin xác thực (Trên Windows 10, đây là trong "Bắt đầu-> Cài đặt". Sau đó tìm kiếm "Trình quản lý xác thực")
  3. Xem Windows Credentials Managerphím tắt và nhấp đúp vào nó để mở ứng dụng.
  4. Khi ứng dụng được mở, nhấp vào Windows Credentialstab.
  5. Xác định thông tin đăng nhập mà bạn muốn xóa / cập nhật, chúng sẽ bắt đầu bằng "git:" và có thể bắt đầu bằng "ada:"
  6. Nhấp vào mục thông tin xác thực, nó sẽ mở ra một cái nhìn chi tiết của mục.
  7. Nhấp vào Chỉnh sửa hoặc Xóa theo yêu cầu và xác nhận.
  8. Rửa sạch, rửa sạch, lặp lại khi cần thiết.

nhập mô tả hình ảnh ở đây


2
Trong trường hợp của tôi, nó không nằm trong "Thông tin xác thực Windows" mà là trên "Thông tin chung". Xóa thông tin xác thực làm thủ thuật.
Toni Gamez

8
Bạn có thể mở cửa sổ bên trên bằng (windows + R) -> "control / name Microsoft.CredentialManager"
Sufiyan Ansari

Thông tin đăng nhập có thể ở đó, nhưng không có 'git:' phía trước nó. Điều đó sẽ không đi làm. Nó cần bắt đầu với 'git:'
Marques

1
Chủ nhân của tôi đặt xác thực windows thành Git Hub, vì vậy mỗi lần tôi thay đổi thông tin đăng nhập windows, tôi phải cập nhật nó để kiểm soát nguồn. Câu trả lời của bạn đã làm việc.
shary.sharath

1
Câu trả lời tuyệt vời. Chúng tôi duy trì kho lưu trữ BitBucket nội bộ, nơi mỗi thông tin đăng nhập tài khoản của chúng tôi được xác thực cho tổ chức của chúng tôi. Gần đây, tất cả các kho lưu trữ của tôi trở nên không có sẵn để đẩy các thay đổi mã. Mặc dù tôi đã có thể thay đổi thông tin đăng nhập theo từng trường hợp, tôi thực sự không muốn làm điều này cho mọi dự án. Cách tiếp cận của @ Pradeep cho phép tôi giải quyết nguyên nhân cơ bản, không chỉ đơn giản là thay đổi mật khẩu. Tổ chức của chúng tôi gần đây đã thay đổi tên miền nội bộ, vì vậy bằng cách chỉnh sửa thông tin đăng nhập tập trung, tôi đã có thể sửa tất cả các dự án của mình.
Michael M

79

Điều này làm việc cho tôi và nó cũng ghi nhớ thông tin của tôi:

  1. Chạy gitbash

  2. Chỉ vào thư mục repo

  3. Chạy git config --global credential.helper wincred


18
Mất một lúc để tìm hiểu điều đó - nó sử dụng Trình quản lý thông tin xác thực trong Bảng điều khiển Windows. Để ngừng sử dụng nó: git config –global credential.helper unset Nguồn , và nhiều chi tiết hơn trong câu trả lời này .
Ian W

7
@IanW Ý bạn là git config --global --unset credential.helpergì? Đó là những gì làm việc cho tôi trong Git Bash.
Ellen Spertus

1
Hãy cẩn thận với lệnh này, nó sẽ thay thế đường dẫn thực tới trình trợ giúp thông tin xác thực của bạn bằng "wincred" đơn giản mà không phải là thứ bạn cần.
Amarax

2
Tôi đã chạy lệnh này để tìm ra nó không phải là điều tôi muốn, cách thích hợp để bỏ đặt là git config --global --unset credential.helper. Cuối cùng, tôi khôi phục lại cài đặt chính xác của mình với git config credential.helper store.
Omar

Điều này giúp tôi! Cảm ơn!
Jefsama

70

Có thể bạn đã thay đổi mật khẩu gần đây cho tài khoản git của bạn Bạn có thể thử tùy chọn git pushvới-u

git push -u origin branch_name_that_you_want_to_push

Sau khi thực hiện lệnh trên, nó sẽ yêu cầu mật khẩu cung cấp mật khẩu cập nhật của bạn

Hy vọng nó có thể giúp bạn


cái này hoạt động, mà môi trường của tôi httpschỉ cần có
BMW

1
Chắc chắn dễ dàng hơn nhiều so với hầu hết các câu trả lời. (Và thay đổi mật khẩu phải là lý do phổ biến nhất để gặp lỗi xác thực ;-))
Michel

nếu bạn đang trải nghiệm điều này trên một bản sao hiện có - thì hãy thực hiệngit push -u
Ajay Chebbi

64

Trước tiên, bạn có thể đảm bảo sử dụng url thích hợp:

git remote set-url origin https://github.com/zkirkland/Random-Python-Tests.git

Sau đó, nếu nó đã hoạt động trước đó và nếu nó không hỏi tên người dùng của bạn, thì đó phải là vì bạn đã lưu thông tin đăng nhập (đăng nhập / mật khẩu) trong một $HOME/.netrctệp, như được giải thích ở đây . Bạn có thể kiểm tra kỹ các cài đặt đó và đảm bảo rằng proxy của bạn, nếu bạn có, đã không thay đổi.

Nếu vẫn không được, bạn có thể chuyển sang url ssh:

git remote set-url origin git@github.com:zkirkland/Random-Python-Tests.git

Nhưng điều đó có nghĩa là bạn đã xuất bản khóa công khai ssh trong cài đặt Tài khoản của mình .


9
Chuyển đổi từ HTTPS sang SSH đã giải quyết vấn đề cho tôi.
leymannx

3
Tôi đã kích hoạt xác thực 2 yếu tố cho tài khoản GH của mình và chuyển url từ xa sang SSH từ HTTPS đã giải quyết vấn đề "xác thực thất bại" cho tôi. Có ý nghĩa. Cảm ơn!
Walter Roman

55

Nó xảy ra nếu bạn thay đổi thông tin đăng nhập hoặc mật khẩu của tài khoản dịch vụ git (Git). Bạn cũng cần thay đổi nó trong Windows Credentials Manager . gõ "Trình quản lý xác thực" trong menu Tìm kiếm của Windows, hãy mở nó.

Trình quản lý thông tin Windows-> Thông tin xác thực Windows và bên dưới Thông tin chung sẽ chỉnh sửa mật khẩu git của bạn.


4
Điều này đã tiết kiệm cho tôi khi làm việc với GitLab (khi không có gì khác giúp được). Cảm ơn!
John Humphreys - w00te

2
Tôi chưa bao giờ nghe nói về trình quản lý thông tin cửa sổ này .... Cảm ơn!
Sam

1
Tôi đã cung cấp thông tin sai khi Git nhắc tôi nhập id người dùng và mật khẩu trong khi đẩy các tệp mới vào kho lưu trữ từ xa. Khi tôi chạy lệnh đẩy một lần nữa, git không nhắc tôi về thông tin xác thực mà thay vào đó, nó chỉ bị lỗi xác thực. Tôi nhận ra sau khi đọc câu trả lời này rằng git sử dụng thông tin đăng nhập được lưu trong trình quản lý thông tin xác thực và đó là lý do git không nhắc mật khẩu mỗi khi chúng tôi đưa vào kho lưu trữ từ xa. Tôi đã xóa mật khẩu git trong trình quản lý thông tin xác thực sau đó git lại nhắc tôi nhập id người dùng và mật khẩu.
Jchenna

41

Về cơ bản chứng chỉ của tôi đã hết hạn và tôi đang phải đối mặt với vấn đề trên.

Sau 2 lệnh đã giúp tôi:

git config --global --unset credential.helper

git config credential.helper store

Nó sẽ hỏi bạn thông tin đăng nhập vào lần tới khi bạn cố gắng đẩy.

Thực hiện theo các hướng dẫn bên dưới để biết thêm chi tiết về việc lưu trữ tên người dùng và mật khẩu an toàn và không bảo mật:

https://git-scm.com/docs/git-credential-store

https://git-scm.com/docs/git-credential-cache


Điều này làm việc cho tôi sau khi tôi thay đổi mật khẩu trên Github và không thay đổi thông tin đăng nhập cục bộ.
Scott

33

Nếu bạn tìm thấy vấn đề lỗi xác thực khi bạn nhập đúng mật khẩu và tên người dùng thì đó là vấn đề git. Để giải quyết vấn đề này khi bạn đang cài đặt git trong máy, hãy bỏ chọn trình quản lý thông tin git enablenhập mô tả hình ảnh ở đây


1
Điều này đã khắc phục sự cố của tôi
user1929819 30/03/2017

cố định của tôi quá. Cảm ơn rất nhiều!
Brian Edwards

Tôi không tìm thấy loại giải pháp này. Tôi đã cài đặt lại git
Hoque MD Zahidul

Đã sửa lỗi của tôi quá (git đã được cài đặt, chỉ cần cài đặt lại mà không kiểm tra cái này: và nó ổn!)
manatlan

1
Tôi cũng phải kiểm tra "Sử dụng thư viện Windows Secure Channel gốc". Nó không được kiểm tra theo mặc định.
doptrois

25

Tôi nghĩ rằng vì một số lý do, GitHub đang mong đợi URL KHÔNG có tên miền phụ www. Khi tôi sử dụng (ví dụ)

git remote set-url origin https://www.github.com/name/repo.git

nó đưa ra các thông báo sau:

remote: Anonymous access to name/repo.git denied
fatal: Authentication failed for https://www.github.com/name/repo.git

Tuy nhiên, nếu tôi sử dụng

git remote set-url origin https://github.com/name/repo.git

nó hoạt động hoàn toàn tốt Không có ý nghĩa quá nhiều với tôi ... nhưng tôi đoán hãy nhớ đừng đặt www vào URL từ xa cho các kho lưu trữ GitHub.

Cũng lưu ý rằng các URL sao chép được cung cấp trên trang web của kho lưu trữ GitHub không bao gồm www.


4
Không đặt "www" trên "github.com" hoạt động. Vì vấn đề đó, Github nên sửa trang web của họ để bạn không thể sao chép bằng "www".
John Nagle

1
Cảm ơn bạn :) Url của tôi bị thiếu .git và nhận xét này khiến tôi phải xem qua và tìm ra nó.

19

Xin chào, tôi đã nhận được cùng một lỗi tôi đã thử tất cả các giải pháp được đề cập trong trang này, nhưng không hoạt động. Cuối cùng, tôi tìm thấy giải pháp, Vì vậy, nghĩ đến việc đăng nó. Xin hãy sửa tôi nếu tôi sai ở bất cứ đâu. Những loại lỗi này xuất hiện nếu đôi khi mật khẩu hệ thống của bạn thay đổi gần đây bất cứ lúc nào. Nó sẽ cố gắng xác nhận từ mật khẩu cũ. Vì vậy, hãy làm theo các bước sau:

  1. Chuyển đến bảng điều khiển
  2. Bấm vào tài khoản người dùng
  3. Theo người quản lý thông tin xác thực
  4. Đi đến Quản lý thông tin cửa sổ
  5. Chuyển đến thông tin chung
  6. Mở rộng tab máy chủ git
  7. nhấp vào Xóa khỏi vault

    • Ngoài ra, bạn có thể nhấp vào chỉnh sửa và thay đổi mật khẩu của bạn được lưu trữ trực tiếp tại đây.

10

Tôi đã chạy vào "$ git fetch fatal: Xác thực thất bại cho 'http: // ...." sau khi mật khẩu windows của tôi hết hạn và bị thay đổi. Nhiều lần tìm nạp, khởi động lại và thậm chí cài đặt lại git với trình quản lý thông tin Windows không giúp được gì.

Đáng ngạc nhiên là câu trả lời đúng ở đâu đó trong các bình luận nhưng không phải trong câu trả lời (và một số trong số chúng thực sự kỳ lạ!). Bạn cần truy cập Bảng điều khiển -> Trình quản lý xác thực / Thông tin xác thực Windows và cập nhật mật khẩu cho git: http: // yourrepoaddress


9

Tôi không thực sự chắc chắn những gì tôi đã làm để nhận lỗi này, nhưng đang làm:

git remote set-url origin https://...

không làm việc cho tôi. Tuy nhiên:

git remote set-url origin git@bitbucket.org:user/repo

bằng cách nào đó đã làm việc


3
Bạn đã chuyển từ https sang ssh
James Wierzba

Nó làm việc cho tôi là tốt. Đây không phải là phép thuật, đó là vì tôi đã lưu cấu hình để truy cập ssh (với khóa công khai được định cấu hình), không được chọn để truy cập https (là user / pass + MFA).
Daniel Dubovski ngày

8

Tôi đã từng gặp vấn đề tương tự. Tôi đặt url theo cách đó:

git remote set-url origin https://github.com/zkirkland/Random-Python-Tests.git

Tôi cũng loại bỏ khỏi tập tin cấu hình mục này : askpass = /bin/echo. Sau đó "git đẩy" hỏi tôi tên người dùng và mật khẩu và lần này nó hoạt động.


Tôi không cần phải xóa khỏi tập tin cấu hình mục này : askpass = /bin/echo.
Darius Miliauskas

5

Trong trường hợp của tôi, gần đây tôi đã thay đổi mật khẩu windows và tôi đã cấu hình khóa SSH cho các hành động liên quan đến git (kéo, đẩy, tìm nạp, v.v.), sau khi tôi gặp phải lỗi "fatal: xác thực thất bại", tôi đã cập nhật mật khẩu của mình trong windows trình quản lý thông tin xác thực (Bảng điều khiển \ Tài khoản người dùng \ Trình quản lý xác thực) cho tất cả các mục bắt đầu bằng git: ..., và đã thử lại, đã hoạt động lần này!



3

Nếu bạn đã bật xác thực hai yếu tố trên tài khoản Github của mình, sau đó đăng nhập vào tài khoản GitHub của bạn và truy cập: https://github.com/sinstall/tokens/new để tạo mã thông báo truy cập mới, sao chép mã thông báo đó và dán dưới dạng một mật khẩu để xác thực trong thiết bị đầu cuối.


2

Nếu bạn đang ở trên windows và đang cố gắng đẩy lên một máy chủ windows có người dùng miền làm việc như người dùng kho lưu trữ (TFS), hãy thử truy cập URL TFS (tức là http:\\tfs) bằng IE. nhập thông tin tài khoản miền của bạn và để trang xuất hiện.

THẬN TRỌNG chỉ sử dụng INTERNET EXPLORER! các trình duyệt khác sẽ không thay đổi thông tin hệ thống của bạn.

Bây giờ hãy vào git bash và thay đổi người dùng từ xa của bạn cho kho lưu trữ như dưới đây:

git config user.name "domainName\userName"

Và đã xong, bây giờ bạn có thể đẩy!


1

Đối với tôi, tôi quên rằng tôi đã thay đổi mật khẩu trên Github.com và khóa của tôi để xác thực shell không bao giờ được cập nhật với mật khẩu mới đó. Xóa mọi thứ git khỏi móc khóa của tôi và sau đó chạy lại yêu cầu git đã giúp giải quyết vấn đề, nhắc tôi lại mật khẩu mới.


1

Chỉ cần bấm chuông ở đây, vấn đề đã khắc phục cho tôi là tôi đã đơn giản hủy bỏ lời nhắc ban đầu, ssh đã mở bằng tài khoản bitbucket của tôi, tôi đã nhập mật khẩu vào đó và mọi thứ hoạt động như mong đợi.


1

Tôi đã phải đối mặt với vấn đề tương tự trên các cửa sổ. Hầu hết thời gian tôi thường phải đối mặt với vấn đề do sử dụng nhiều tài khoản git. Nếu bạn đang ở trên windows, vui lòng mở terminal với tư cách quản trị viên và thử chạy lại các lệnh. Hãy chắc chắn rằng bạn có quyền truy cập quản trị viên.


1

Tôi đã thêm vào Bitbucket được liên kết với Git và phải xóa các khóa được lưu trữ, vì điều này gây ra lỗi nghiêm trọng.

Để giải quyết, tôi mở dấu nhắc lệnh và chạy

 rundll32.exe keymgr.dll, KRShowKeyMgr

Tôi đã xóa khóa chịu trách nhiệm đăng nhập và lần sau khi tôi đẩy các tệp vào repo, tôi đã được nhắc nhập thông tin xác thực và nhập đúng, dẫn đến việc đẩy thành công.


0

Tôi cũng gặp phải lỗi (đó là lý do tại sao tôi hạ cánh ở đây), nhưng không có gợi ý nào phù hợp với tôi. Đây là lần đầu tiên tôi cố gắng triển khai Git cục bộ thành phương vị. Khi tôi gặp lỗi này, tôi đặt lại thông tin đăng nhập của mình (bằng cách nhấp vào liên kết trong Azure) sau một vài lần thử. Vấn đề là tại thời điểm này, nó cho tôi biết tên người dùng của tôi đã được sử dụng, vì vậy tôi cũng đã thay đổi tên người dùng của mình thành một tên khác. Cuối cùng, tôi đã xóa thủ công thư mục .git trên ổ đĩa cục bộ của mình và triển khai lại mà không gặp vấn đề gì.


0

Báo cáo sự cố: "git xác thực không thành công". Tôi đang sử dụng bitbucket.

Giải pháp: Tôi chỉ đơn giản là xóa người dùng khỏi việc sử dụng quản lý truy cập của bitbucket và sau đó thêm cùng một người dùng. Tệp .gitconfig đơn giản

[user]
    name = BlaBla
    email = blabla@gmail.com

[push]
    default = simple

0

với thông tin xác thực nếu sự cố xảy ra

Nếu bạn sử dụng androidstudio 2.1 beta thì lỗi của nó, hãy nâng cấp lên beta 2 (tệp cập nhật 3 mb), điều này hiệu quả với tôi


0

Hãy chắc chắn rằng bạn có quyền VIẾT để đẩy.

read ***write*** admin 

0

Đảm bảo rằng khóa ssh của bạn được thêm vào phiên ssh hiện tại của bạn.

  1. Sao chép đầu ra của cat ~/.ssh/id_rsa.pubcài đặt GitHub của bạn dưới các khóa SSH và GPG.

  2. Cập nhật phiên ssh hiện tại của bạn với ssh-add ~/.ssh/id_rsa.pub

Tôi đang sử dụng Windows Powershell với cài đặt Openssh.


0

trong Android studio canary build 3.1+, nếu bạn đang sử dụng công cụ git studio của Android, hơn bạn có thể sử dụng như sau:

  • Nhấp vào Android Studio
  • Nhấp vào Tùy chọn ...
  • GO trong VersionControl -> Github
  • Tại đây Thay đổi loại xác thực thành Mật khẩu
  • Bước này sẽ yêu cầu bạn nhập thông tin đăng nhập và mật khẩu. Nhập tên người dùng github của bạn làm mật khẩu đăng nhập và github làm mật khẩu.
  • Nhấp vào nút kiểm tra.

Nếu kết nối thành công, bạn đã hoàn thành và bạn có thể sử dụng máy khách UI github của studio android.


0

Nếu bạn đang sử dụng ssh và nhân bản bằng https thì điều này sẽ không hoạt động. Nhân bản với ssh và sau đó đẩy và kéo sẽ hoạt động như mong đợi!


0

Trong trường hợp điều này hữu ích về mặt tiếp tuyến, vì câu hỏi này hiện là câu hỏi hàng đầu cho các vấn đề xác thực http với git: Trình quản lý thông tin Windows đã lưu trữ mật khẩu của tôi một cách chính xác và vì tôi đang sử dụng Git LFS, tôi đã định cấu hình URL http thay vì ssh thông thường: / / .

Vấn đề của tôi là chính sách mật khẩu công ty của tôi đã buộc thay đổi mật khẩu tài khoản nhưng tôi không bao giờ cập nhật thông tin đăng nhập được lưu trữ của mình (vì tôi luôn sử dụng khóa ssh).

Chỉ cần cập nhật mật khẩu trực tiếp trong GUI Wincred đã hoạt động: chỉ cần tìm một git:https://<your-url>mục nhập.


0

Điều này đã xảy ra với chúng tôi sau khi buộc "Xác thực hai yếu tố" trước khi đăng nhập từ Gitlab. Chúng tôi phải dán văn bản bên trong id_rsa.pub vào Gitlab, sau đó giới thiệu lại kho lưu trữ trong mã VS bằng thiết bị đầu cuố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.