2012-06-16 15 views
53

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.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'?

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

Tôi tin rằng những gì đã xảy ra là lần đầu tiên nó hỏi cho các chứng chỉ, tôi nghĩ rằng nó là một ứng dụng khác yêu cầu, và nó đặt những cái sai trong.

Tôi chỉ cần thiết lập 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ờ cho phép bất kỳ nhắc nhở. Set sẽ nói "bad input" nếu tôi không làm điều đúng. Tôi đã cố gắng đưa vào "password=password", v.v., nhưng sau đó khi tôi làm một "nhận được" tôi vẫn nhận được những cái cũ.

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

+0

liên quan, chứng chỉ helper thuyết bất khả tri: http://stackoverflow.com/questions/21745213/changed-github-password-no-longer-able-to-push -back-to-the-remote –

+0

Có khả năng giống nhau trên Windows: http://stackoverflow.com/questions/15381198/remove-credentials-from-git –

+0

[Bạn có thể đặt tiện ích trợ giúp này để liên kết thông tin đăng nhập của bạn với các repos cụ thể thay vì hơn toàn bộ tên miền, trong trường hợp bạn muốn sử dụng nhiều tài khoản. Thông tin thêm về điều đó ở đây] (http://stackoverflow.com/a/31351376/1922144) – davidcondrey

Trả lời

19

Giải pháp hóa ra là thế này:

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

Tôi đã khắc phục sự cố bằng cách chạm vào tài khoản trong Keychain Access để thay đổi nhận xét và bây giờ nó đã trở thành tài khoản GitHub mới nhất trở thành tài khoản đầu tiên được trả về bằng chứng chỉ-osxkeychain, và do đó mọi thứ hoạt động.

Một hình thức hỗ trợ tốt hơn cho nhiều tài khoản GitHub sẽ đẹp, nhưng có khả năng 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 chắn cách thức này hoạt động cho 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 tệp '~/.ssh/config' thay vì sử dụng OSX Keychain. Điều này được sử dụng trong trường hợp bạn có thể có nhiều khóa ssh cho các máy chủ khác nhau (cũng như các tài khoản suy nghĩ). http://nerderati.com/2011/03/17/simplify-your-life-with-an-ssh-config-file/ – jusopi

+0

Bạn hùng mạnh mẽ! – Cristian

54

Tôi không chắc chắn làm thế nào để xóa thông qua dòng lệnh, nhưng nó khá dễ dàng để làm điều đó thông qua ứng dụng Keychain Access. Chỉ cần vào Applications -> Utilties -> Keychain Access, 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ừ với ứng dụng.

+2

Nếu ai đó đọc số liệu này làm thế nào để làm từ dòng lệnh, sẽ là tốt đẹp để biết. – funroll

+1

@funroll Công cụ dòng lệnh là 'bảo mật'. Trang man chỉ ra rằng nó có lệnh 'delete-internet-password'. – benzado

+0

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

9

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

Theo mặc định, gitcredentials 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 biến số useHttpPath 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ẽ yêu cầu thông tin xác thực của bạn một lần nữa cho mỗi URL.

40

Từ Terminal:

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

Tuyệt vời, nó hoạt động với git credential-wincred erase quá –

+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 đã hiệu quả. Cảm ơn! – Donald

3

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

HOẶC loại bỏ bằng tay từ keychain từ ApplicationsUtilitiesKeychain Access. Sau đó gỡ bỏ keychain github.com. Sau đó sử dụng push; nó sẽ yêu cầu truy cập keychain; rồi từ chối.

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

Sau git push Tôi đã tìm thấy lỗi này. Sau đó, tôi sử dụng phía trên đựng pin- vấn đề:

remote: Permission to user1/file.git denied to user2(previously exist user ). fatal: unable to access ' https://github.com/xxxxxxxxxxxx/ ': The requested URL returned error: 403

Các vấn đề liên quan