Làm cách nào để bạn đặt lại thông tin đăng nhập được lưu trữ trong 'git credential-osxkeychain'?


98

Tôi đã làm theo hướng dẫn GitHub để thiết lập tài khoản của mình và tôi có thể sao chép, nhưng tôi không thể đẩy từ xa.

Khi tôi thực hiện "git push", tôi gặp lỗi 403. Nó có URL chính xác. Tôi đã thử "git credential-osxkeychain get" để xem nó mang lại gì và điều này in ra thông tin đăng nhập sai.

Tôi tin rằng những gì đã xảy ra là lần đầu tiên nó yêu cầu thông tin đăng nhập, tôi nghĩ rằng đó là một ứng dụng khác đang yêu cầu, và nó đã đưa những cái sai vào.

Tôi chỉ cần đặt lại nó để nó sử dụng đúng mục keychain cho tài khoản GitHub của tôi.

Tôi đã thử:

git credential-osxkeychain erase
git credential-osxkeychain set

Chương trình không bao giờ đưa ra bất kỳ lời nhắc nào. Set sẽ báo "đầu vào không tốt" nếu tôi không làm đúng. Tôi đã thử nhập " password=password", v.v., nhưng sau đó khi tôi thực hiện "nhận", tôi vẫn nhận được những cái cũ.

Tôi không thể tìm ra nơi những thứ này đang được lưu trữ, vì chúng không có trong .gitconfigure. Hơn nữa, không có mặt hàng móc khóa nào gần đây có thể là nó. (Tôi có một số tài khoản GitHub trong chuỗi khóa của mình và nó không sử dụng bất kỳ tài khoản nào trong số đó.)


Người trợ giúp thông tin xác thực có liên quan, bất khả tri: stackoverflow.com/questions/21745213/…
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功


Câu trả lời:


122

Từ nhà ga:

 $ git credential-osxkeychain erase
 host=github.com
 protocol=https
 <press return>

LƯU Ý: sau khi bạn nhập “protocol = https” ở trên, bạn cần nhấn ~~ RETURN ~~ TWICE


2
Vì một số lý do, tôi không thể tìm thấy bất kỳ thông tin đăng nhập Git / GitHub nào trong ứng dụng Keychain, nhưng điều này đã hoạt động. Cảm ơn!
Donald

4
Vì điều này không rõ ràng với tôi: bạn phải nhập tất cả 3 dòng ở trên, và sau đó nhấn trở lại một lần nữa - nghĩa là dòng 2/3 ở trên không phải là đầu ra từ lệnh, mà là đầu vào.
Frederik

Câu trả lời này đã giúp tôi. Cảm ơn rât nhiều!
Ken Flake

70

Tôi không chắc làm thế nào để xóa thông qua dòng lệnh, nhưng khá dễ dàng để làm điều đó thông qua ứng dụng Keychain Access. Chỉ cần đi tới Ứng dụng -> Utilties -> Truy cập chuỗi khóa, sau đó nhập "github.com". Bạn có thể xóa mục không hợp lệ hoặc cập nhật mật khẩu từ ứng dụng.


4
Nếu ai đó đọc phần này tìm ra cách thực hiện từ dòng lệnh, rất vui được biết.
funroll

1
@funroll Công cụ dòng lệnh là security. Trang người đàn ông nói rằng nó có một delete-internet-passwordlệnh.
benzado

Cảm ơn vì bản cập nhật, tôi chắc chắn rằng điều đó sẽ hữu ích cho ai đó.
funroll

đây là giải pháp tốt nhất
Elias Fazel

Từ móc khóa nào?
Bryan Bryce

28

Giải pháp hóa ra là:

Lệnh git credential-osxkeychainđang sử dụng mục nhập tài khoản GitHub đầu tiên trong chuỗi khóa của tôi. Đây không phải là một trong những đã có quyền truy cập vào các dự án được đề cập.

Tôi đã giải quyết vấn đề bằng cách chạm vào tài khoản trong Keychain Access để ngày của nó thay đổi (tôi nghĩ rằng tôi vừa thay đổi nhận xét) và bây giờ nó đã trở thành tài khoản GitHub gần đây nhất, nó trở thành tài khoản đầu tiên quay trở lại thông tin đăng nhập-osxkeychain và do đó mọi thứ đều hoạt động .

Một hình thức hỗ trợ tốt hơn cho nhiều tài khoản GitHub sẽ rất hay, nhưng có khả năng là hầu hết mọi người chỉ có một tài khoản chính và không gặp phải vấn đề này.


2
Tôi không chắc điều này hoạt động như thế nào đối với nhiều người dùng trên cùng một máy chủ, nhưng bạn có thể kiểm tra ssh và sử dụng ~/.ssh/configtệp thay vì sử dụng Chuỗi khóa OSX. Điều này được sử dụng trong các trường hợp bạn có thể có nhiều khóa ssh cho các máy chủ khác nhau (và cả tài khoản suy nghĩ). nerderati.com/2011/03/17/…
jusopi

10

git-credential-osxkeychain lưu trữ mật khẩu trong Apple Keychain, như đã nói ở trên.

Theo mặc định, thông tin đăng nhập chỉ xem xét tên miền. Nếu bạn muốn Git xem xét đường dẫn đầy đủ (ví dụ: nếu bạn có nhiều tài khoản GitHub), hãy đặt useHttpPathbiến thành true, như được mô tả tại http://git-scm.com/docs/gitcredentials.html . Lưu ý rằng việc thay đổi cài đặt này sẽ hỏi lại thông tin đăng nhập của bạn cho từng URL.


7

Trên Mac, sử dụng lệnh git credential-osxkeychain erase.

HOẶC xóa thủ công khỏi chuỗi khóa từ Ứng dụngTiện íchTruy cập chuỗi khóa . Sau đó, xóa chuỗi khóa github.com. Sau đó, sử dụng đẩy; nó sẽ yêu cầu quyền truy cập chuỗi khóa; sau đó phủ nhận.

Nó sẽ yêu cầu tên người dùng và mật khẩu mới, thêm nó rồi đẩy một tệp cho điều đó.

Sau khi git pushtôi tìm thấy lỗi này. Sau đó, tôi sử dụng chữ hoa- vấn đề:

remote: Quyền truy cập user1 / file.git bị từ chối đối với user2 (người dùng tồn tại trước đó). nghiêm trọng: không thể truy cập ' https://github.com/xxxxxxxxxxxx/ ': URL được yêu cầu trả về lỗi: 403



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.