Không thể đặt mã thông báo truy cập GitHub
Khi tôi thử và git sao chép bất kỳ kho lưu trữ nào bằng HTTPS, nó sẽ không nhắc tôi nhập mã thông báo truy cập của mình, tôi chỉ gặp lỗi 403. git clone sử dụng SSH không hoạt động tốt. Tôi nghi ngờ sự cố có liên quan đến việc máy tính xách tay của công ty sử dụng ZScaler và chuỗi chứng chỉ HTTPS trust \ bị hỏng.
Làm thế nào git biết những chứng chỉ nào để sử dụng, giống như một trình duyệt? hoặc làm cách nào để khắc phục sự cố này?
$ git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
Cloning into 'python-docs-samples'...
fatal: unable to access 'https://github.com/GoogleCloudPlatform/python-docs-samples.git/': The requested URL returned error: 403
Tôi đã cố gắng xóa tất cả các tham chiếu khỏi KeyChain của mình để nó sẽ nhắc tôi nhập lại Mã thông báo truy cập nhưng không bao giờ xảy ra. Ngoài ra, tôi không thể thấy bất kỳ tham chiếu nào đến git trong OSX KeyChain
Git cục bộ của tôi được thiết lập để sử dụng osx KeyChain
$ git config --get-all --show-origin credential.helper
file:/Applications/Xcode-11.3.1.app/Contents/Developer/usr/share/git-core/gitconfig osxkeychain
Nhưng dường như nó biết thông tin đăng nhập GitHub của tôi cho GitHub công ty của công ty tôi
$ git credential-osxkeychain get
password=<my company password>
username=<my company logon>
Git lấy tên người dùng và mật khẩu của tôi từ đâu cho GitHub công ty của Công ty tôi và làm cách nào để yêu cầu git sử dụng thông tin đăng nhập và mã thông báo truy cập của tôi cho GitHub.com?
Cập nhật 1
$ git credential-cache exit
$ git credential-osxkeychain erase host=github.com protocol=https $ git config --global --unset credential.helper
Bây giờ lệnh này không trả về gì
$ git credential-osxkeychain get
Nhưng vẫn gặp lỗi 403, ngay cả khi sử dụng tên người dùng GitHub của tôi theo gợi ý bên dưới, nó không nhắc tôi.
Tôi đã kiểm tra lại KeyChain của mình và không có gì được lưu trữ ở đó cho GitHub
Trả lời
Cuối cùng đã tìm ra giải pháp
$ git config --global url.git://github.com.insteadOf "https://github.com"
Điều này buộc giao thức git cho các trang web github công cộng không có xác thực trong khi vẫn hoạt động trong mạng công ty và kho lưu trữ GitHub riêng tư của chúng tôi
Một mẹo hay để kích động người trợ giúp thông tin xác thực yêu cầu thông tin đăng nhập của bạn với thông tin đăng nhập chính xác của bạn là thêm thông tin đăng nhập đã nói vào URL GitHub của bạn:
git clone https://<MyGitHubAccount>@github.com/GoogleCloudPlatform/python-docs-samples.git
Và đảm bảo rằng bạn đã xóa mọi mục nhập GitHub khỏi Chuỗi khóa OSX
Sau đó, nó sẽ nhắc nhập mật khẩu của bạn.