Tin tức và phân tích của tất cả các thiết bị di động

Làm cách nào để thiết lập xác thực không cần mật khẩu trên kho lưu trữ GitHub riêng tư?

Lặp đi lặp lại cùng một nhiệm vụ là nhàm chán và đau đớn cho các lập trình viên như chúng tôi. thật?

Một nhiệm vụ như vậy là tương tác với kho lưu trữ GitHub riêng. chuyện gì đang xảy ra vậy? Bạn biết nó là gì. Bạn đang tìm cách giải quyết vấn đề này và bạn đã xem qua bài viết này. Bạn sẽ ngừng tìm kiếm sau khi đọc bài viết này.

Vì vậy, ở đây chúng ta sẽ nói về việc truy cập kho lưu trữ GitHub riêng tư mà không cần mật khẩu. Không chần chừ nữa, chúng ta hãy bắt đầu.

Có hai cách để truy cập bất kỳ kho lưu trữ GitHub nào. Chúng là HTTPS và SSH. Hầu hết các bạn sử dụng HTTPS. Nhưng bây giờ bạn phát hiện ra rằng đây không phải là cách hiệu quả để sử dụng phương thức HTTPS để sao chép các kho lưu trữ riêng tư.

Truy cập bao gồm nhân bản, đẩy, kéo, v.v.; mọi thứ liên quan đến việc cập nhật kho lưu trữ của chúng tôi trong điều khiển từ xa.

Không có vấn đề truy cập kho lưu trữ công cộng. Nhưng chúng ta cần xác thực bản thân khi truy cập kho lưu trữ riêng. Có nhiều cách khác nhau để xác thực chính bạn.

Hãy bắt đầu với những điều nổi tiếng nhất…

Nếu bạn đang sử dụng HTTPS

Có lẽ bạn nên biết về phương thức HTTPS và tìm kiếm những phương thức khác. Hãy nhanh chóng xem cách truy cập kho lưu trữ riêng với nó.

  • Sao chép liên kết đến kho lưu trữ riêng của bạn.

Kho lưu trữ GitHub riêng tư

  • Mở terminal hoặc cmd trên máy tính của bạn.
  • Dán lệnh git clone link để sao chép kho lưu trữ riêng.
  • Thay thế liên kết bằng một liên kết đến kho lưu trữ riêng của bạn.
  • Nó sẽ yêu cầu chúng tôi xác thực. Vì vậy, chúng tôi cần nhập thông tin đăng nhập GitHub của mình.
  • Đầu tiên, nó sẽ hỏi chúng tôi tên người dùng GitHub của chúng tôi. Nhập tên người dùng GitHub của bạn và nhấn Enter.

Xác thực tên người dùng

  • Bây giờ chúng ta cần nhập mật khẩu. Nhập mật khẩu GitHub của bạn và nhấn Enter.

mật khẩu xác thực

Đó là nó; chúng tôi đã nhân bản một kho lưu trữ riêng bằng HTTPS. Bây giờ hãy cập nhật thứ gì đó trong kho lưu trữ, cam kết và đẩy nó vào điều khiển từ xa.

bạn đã nhận thấy những gì?

Nó yêu cầu xác thực lại.

xác thực đẩy

Không phải nhập thông tin đăng nhập mỗi khi chúng ta tương tác với một kho lưu trữ riêng là một nhiệm vụ nặng nề và tẻ nhạt sao?

Đây là.

Chúng tôi không thể nhập thông tin đăng nhập GitHub của mình mỗi khi chúng tôi tương tác với kho lưu trữ riêng của mình. Đây là một quá trình tốn thời gian và làm chậm công việc của chúng tôi.

Có nhiều cách khác nhau để thoát khỏi vấn đề trên. Cách tốt nhất để làm điều này là sử dụng SSH. Nhưng có những cách khác. Hãy xem xét tất cả từng cái một.

cấu hình .git

Tất cả thông tin phiên bản cho kho của chúng tôi được lưu trữ trong thư mục .git. Đó là một thư mục ẩn. Có một tệp cấu hình trong đó cho phép chúng tôi định cấu hình cài đặt. Nhưng nó thường không được khuyến khích.

Chúng tôi có thể sao chép một kho lưu trữ riêng bằng cách thêm tên người dùng và mật khẩu của mình vào URL của kho lưu trữ như sau.

git clone https://<strong>username:password</strong>@github.com/<strong>username</strong>/<strong>repository_name</strong>.git

Cập nhật tên người dùng, mật khẩu và tên_kho lưu trữ với các chi tiết phù hợp. Vì chúng tôi đã cung cấp thông tin đăng nhập của mình trong URL nên nó sẽ không yêu cầu xác thực như chúng tôi đã thấy trước đây.

Vì vậy, chúng tôi sẽ sử dụng phương pháp xác thực ở trên và cập nhật cấu hình kho lưu trữ của chúng tôi cho phù hợp. Hãy xem cách loại bỏ xác thực lặp lại bằng cách cập nhật URL.

  • Mở thư mục .git trong kho lưu trữ nhân bản.

Thư mục .git

  • Bạn sẽ tìm thấy một tệp có tên config. Mở nó bằng bất kỳ trình soạn thảo văn bản nào bạn chọn.
  • Một dòng sẽ xuất hiện với liên kết kho lưu trữ của chúng tôi như sau.

Liên kết đến kho lưu trữ trong cấu hình

  • Cập nhật URL bằng cách thêm tên người dùng và mật khẩu của bạn như được hiển thị ở trên.

Cập nhật URL kho lưu trữ

Bây giờ hãy cập nhật lại thứ gì đó trong kho lưu trữ, cam kết và đẩy.

Bạn đang xem một cái gì đó?

Lần này, nó không nên yêu cầu thông tin đăng nhập GitHub của bạn. Vì vậy, chúng tôi đã giải quyết vấn đề của mình bằng cách cập nhật cài đặt kho lưu trữ.

Bạn có thể nhận thấy rằng nó không an toàn. Bởi vì chúng tôi tiết lộ thông tin đăng nhập của chúng tôi. Phương pháp này sẽ không hoạt động nếu mật khẩu GitHub của bạn chứa ký hiệu @.

Vì vậy, có một số nhược điểm nghiêm trọng khi sử dụng phương pháp này. Vì vậy, hãy bỏ qua nó và chuyển sang phương pháp tiếp theo.

chứng nhận. người giúp đỡ

Credential.helper cho phép chúng tôi lưu trữ thông tin xác thực mãi mãi trong tệp ~/.git-credentials.

Nó sẽ lưu thông tin đăng nhập của chúng tôi khi chúng tôi nhập chúng lần đầu tiên. Một lần nữa, khi chúng tôi cố gắng truy cập vào một kho lưu trữ riêng, nó sẽ không yêu cầu thông tin đăng nhập cho đến khi nó được ghi vào ~/git-credentials. Đây là một cách để tránh vấn đề của chúng tôi. Hãy xem nó hoạt động với các bước chính xác.

  • Trước tiên, chúng ta cần kích hoạt tùy chọn lưu trữ thông tin đăng nhập bằng cách sử dụng lệnh git config credential.helper store.
  • Sau khi kích hoạt tùy chọn, hãy thử truy cập kho lưu trữ riêng bằng tên người dùng và mật khẩu của bạn.
  • Khi bạn nhập tên người dùng và mật khẩu của mình, nó sẽ lưu chúng vào tệp ~/.git-credentials với thông tin đăng nhập GitHub của bạn như sau.

thông tin xác thực git

Bây giờ một lần nữa quy trình tương tự để xem nó có hoạt động chính xác hay không. Cập nhật, cam kết và đẩy. Tôi chắc chắn rằng nó sẽ không yêu cầu bạn cung cấp thông tin đăng nhập nếu bạn làm theo các bước ở trên để lưu thông tin đăng nhập của mình.

Nó tiến triển tốt…

Nếu bạn muốn lưu thông tin đăng nhập qua 4 giờ thay vì mãi mãi?

Credential.helper cho phép bạn lưu trữ tạm thời thông tin đăng nhập của chúng tôi trong một khoảng thời gian nhất định. Chúng tôi sử dụng bộ đệm thay vì bộ nhớ để lưu trữ thông tin xác thực trong một khoảng thời gian nhất định.

Theo mặc định, bộ đệm lưu trữ thông tin đăng nhập của chúng tôi trong 15 phút. Sau 15 phút, git sẽ yêu cầu lại thông tin đăng nhập. Nhưng chúng ta có thể thay đổi thời gian mặc định bằng lệnh sau.

git config credential.helper 'cache --timeout={time_in_seconds}'

Đừng quên nhập thời gian tính bằng giây. Hãy xem nó trong hành động.

  • Trước tiên, chúng ta cần kích hoạt tùy chọn lưu thông tin đăng nhập vào bộ nhớ cache bằng cách sử dụng lệnh git config credential.helper cache.
  • Truy cập kho lưu trữ riêng của bạn bằng tên người dùng và mật khẩu của bạn.
  • Sau khi bạn nhập tên người dùng và mật khẩu, nó sẽ lưu thông tin đăng nhập GitHub của bạn trong một khoảng thời gian nhất định.

Bây giờ hãy cập nhật, cam kết và đẩy. Một lần nữa, nó sẽ không yêu cầu thông tin đăng nhập của bạn vì chúng tôi đã nói điều đó để lưu trữ chúng.

Chúng tôi đã chỉ cho bạn các lệnh để làm việc với kho lưu trữ được khởi tạo bằng git. Chúng ta có thể cập nhật cấu hình git trên toàn cầu cho tất cả các dự án bằng cách thêm cờ –global vào các lệnh trên.

Mã thông báo truy cập cá nhân

Mã thông báo truy cập cá nhân được sử dụng để cấp quyền truy cập vào API GitHub. Mã thông báo truy cập cá nhân tương tự như mã thông báo OAuth. Vì vậy, chúng có thể được sử dụng để xác thực cơ bản thay vì mật khẩu git. Do đó, chúng tôi có thể sử dụng mã thông báo truy cập cá nhân để giải quyết vấn đề của mình.

Hãy xem làm thế nào để làm điều đó.

  • Đăng nhập vào tài khoản GitHub của bạn.
  • Chuyển đến Cài đặt.

Cài đặt GitHub

  • Bây giờ, hãy chuyển đến Phát triển cài đặt từ thanh điều hướng bên trái.

Cài đặt nhà phát triển GitHub

  • Nhấp vào mã thông báo truy cập cá nhân để đến đích của bạn. Bạn sẽ thấy mã thông báo truy cập cá nhân như sau.

Mã thông báo truy cập cá nhân GitHub

  • Nhấp vào Tạo mã thông báo mới để tạo một mã mới.

Tạo mã thông báo mới

  • Nhập ghi chú cho mã thông báo. Bạn có thể coi nó như những ghi chú ngắn để chip nhớ.

Mã thông báo truy cập cá nhân

  • Chọn quyền cho mã thông báo. Các chương trình sử dụng mã thông báo cấp quyền truy cập vào tất cả các quyền đã chọn. Trong trường hợp của chúng tôi, hãy chọn kho lưu trữ.

Quyền đối với kho lưu trữ

  • Cuộn xuống và nhấp vào nút Tạo mã thông báo.

Tạo nút mã thông báo

  • Mã thông báo truy cập cá nhân sẽ chỉ được hiển thị một lần như sau. Chúng tôi không thể thấy lại mã thông báo cá nhân của mình. Vì vậy, sao chép nó và lưu nó ở một nơi an toàn. Sử dụng trình quản lý mật khẩu nếu cần.

Mã thông báo truy cập cá nhân

  • Chúng tôi đã tạo thành công mã thông báo truy cập cá nhân.
  • Bây giờ là lúc sử dụng nó để truy cập kho lưu trữ riêng của chúng tôi.
  • Cập nhật URL kho lưu trữ trong tệp .git/config thành https://{personal_access_token}@github.com/hafeezulkareem/private_repository.git tương tự như phương pháp đầu tiên.

Mã thông báo truy cập cá nhân trong cấu hình

Bây giờ hãy thử truy cập kho lưu trữ riêng.

Nó có yêu cầu bạn xác thực không?

Không, nó sẽ không yêu cầu bạn xác thực cho đến khi mã thông báo hoạt động. Hãy chuyển sang cách cuối cùng để giải quyết vấn đề của chúng ta.

SSH

SSH được sử dụng để xác thực. Bạn có thể tìm thấy tài liệu SSH đầy đủ trên GitHub tại đây.

Ý tưởng rất đơn giản. Tạo khóa SSH, thêm nó vào tài khoản GitHub của bạn và tận hưởng xác thực không cần mật khẩu.

Hãy xem xét ba bước này một cách chi tiết.

  • Mở terminal hoặc cmd trên hệ thống của bạn.
  • Nhập ssh-keygen -t rsa để tạo khóa SSH mới.
  • Nó sẽ yêu cầu một thư mục để lưu khóa. Nhấn Enter để chọn thư mục mặc định. Nhưng bạn cũng có thể thay đổi thư mục dựa trên sở thích của mình. Ở đây chúng tôi đi với thư mục mặc định.

thư mục SSH

  • Bây giờ chúng ta cần nhập mật khẩu để bảo vệ khóa SSH của mình. Nhưng nó là tùy chọn.
    • Nếu chúng tôi chọn mật khẩu cho khóa SSH, trước tiên chúng tôi phải nhập mật khẩu đó mỗi khi bật hệ thống của mình.
    • Nếu bạn chưa chọn mật khẩu thì không cần nhập trước.

mật khẩu SSH

  • Nhập lại mật khẩu của bạn để xác nhận.

mật khẩu SSH

  • Cuối cùng, nó sẽ tạo một SSH key mới cho chúng ta như sau.

khóa SSH

Chúng tôi đã tạo thành công khóa SSH mới trên hệ thống của mình. Nó sẽ tạo ra 2 file như sau (nếu bạn thay đổi đường dẫn thì tên file có thể khác đi).

Tệp khóa SSH

Bây giờ là lúc kết nối với tài khoản GitHub của chúng tôi. Để kết nối, nội dung của tệp có phần mở rộng .pub phải được sao chép vào tài khoản GitHub của chúng tôi. Trong trường hợp của tôi, đó là id_rsa.pub.

  • Đăng nhập vào tài khoản GitHub của bạn.
  • Mở cài đặt.

Cài đặt GitHub

  • Nhấp vào các khóa SSH và GPG để đến đích của bạn.

Khóa SSH và GPG

  • Nhấp vào Khóa SSH mới để thêm khóa SSH mới được tạo của chúng tôi.

Khóa SSH mới

  • Bạn sẽ được đưa đến màn hình sau.

Khóa SSH mới

  • Thêm tiêu đề khóa SSH thích hợp. Các khóa SSH khác nhau đối với mỗi hệ thống. Vì vậy, lựa chọn dựa trên điều này là một trong những lựa chọn tốt. Nhưng đó không phải là lựa chọn duy nhất. Bạn có thể chọn dựa trên những thứ khác theo sở thích của bạn.
  • Sau khi chọn tiêu đề, hãy sao chép và dán nội dung của .pub vào trường thứ hai.

Khóa SSH mới

  • Cuối cùng, nhấn phím Thêm SSH và xác nhận quyền truy cập bằng mật khẩu GitHub của bạn.
  • Khóa SSH mới được thêm sẽ trông như thế này.

Khóa SSH mới

Chúng tôi đã thêm khóa SSH mới được tạo vào GitHub. Bây giờ chúng ta cần xác thực kết nối SSH để có thể sử dụng xác thực không cần mật khẩu sau này. Để thực hiện việc này, hãy nhập lệnh sau vào terminal hoặc cmd.

ssh -T [email protected]

kết nối SSH

Nó sẽ yêu cầu xác nhận. xác nhận nó. Và đó là nó, và chúng tôi đã hoàn thành.

Bây giờ sao chép kho lưu trữ riêng của bạn. Lần này nó sẽ không yêu cầu bất kỳ xác thực nào.

Cập nhật, cam kết và đẩy. Của bạn đây. Nó sẽ không còn yêu cầu bạn xác thực nữa. Hãy tận hưởng nó.

Đăng kí

Phù! chúng tôi đã đề cập đến các phương pháp khác nhau để truy cập các kho lưu trữ riêng mà không cần phải nhập đi nhập lại thông tin xác thực. Bạn có thể sử dụng bất kỳ phương pháp nào. Tuy nhiên, cách thực hành chung và tốt nhất là sử dụng phương pháp SSH để xác thực.

Một lần nữa, nó phụ thuộc vào sở thích của bạn; không có quy tắc nghiêm ngặt nào để sử dụng phương thức SSH duy nhất. Tuy nhiên, hầu hết các công ty sử dụng phương thức xác thực SSH, an toàn và tiết kiệm rất nhiều thời gian. Và đảm bảo thông tin đăng nhập của bạn được bảo mật.

Phát triển tốt đẹp nhé 🙂