Trang chủ Thủ Thuật Bạn nên sử dụng HTTPS hay SSH cho Git?

Bạn nên sử dụng HTTPS hay SSH cho Git?

0
13

Bạn nên sử dụng HTTPS hay SSH cho Git?

4d72a7db 4

Khi kết nối với các kho lưu trữ Git từ xa như Github, bạn thường có hai tùy chọn kết nối — HTTPS hoặc SSH. Cả hai đều có công dụng của chúng và mặc dù SSH thường được coi là an toàn hơn, nhưng câu hỏi lại phức tạp hơn thế một chút.

Có gì khác biệt?

Phương thức xác thực bạn sử dụng để kết nối với kho lưu trữ Git phụ thuộc vào URL mà điều khiển từ xa của bạn được định cấu hình. Định dạng URL mặc định mà Github sử dụng là HTTPS, giao tiếp trực tiếp qua giao thức web:

https://github.com/user/RepoName.git

Tuy nhiên, bạn cũng có thể sử dụng SSH. Trong khi bạn không mở một trình bao tương tác và thực hiện các lệnh, nó vẫn có định dạng giống như khi bạn đang kết nối với một máy chủ Linux hỗ trợ SSH thông thường:

user @ ipaddress: thư mục / tệp

Với Github và hầu hết các dịch vụ, bạn kết nối với git ” và truy cập .git dưới dạng tệp trong thư mục có tên người dùng của bạn.

git@github.com: user / RepoName.git

Tại sao sử dụng HTTPS?

Vì vậy, cái nào bạn nên sử dụng? Mặc dù SSH thường được coi là an toàn hơn, nhưng đối với cách sử dụng cơ bản của Github, xác thực HTTPS bằng mật khẩu là đủ chấp nhận được. Trên thực tế, chính Github đã mặc định và khuyến nghị hầu hết mọi người sử dụng HTTPS.

HTTPS có nhiều ưu điểm:

  • HTTPS đơn giản hơn. Với cách nó hoạt động trên Github, bạn chỉ cần nhập tên người dùng và mật khẩu Github của mình và bạn sẽ có thể đẩy và kéo mã. Đối với người dùng bình thường, điều này hoàn toàn ổn.
  • Bạn không cần phải sắp xếp nhiều khóa SSH xung quanh để sử dụng nhiều thiết bị.
  • Cổng 443, mà HTTPS sử dụng, về cơ bản được mở trong bất kỳ tường lửa nào có thể truy cập internet. Điều đó không phải lúc nào cũng đúng với SSH.
  • Vấn đề xác thực dựa trên mật khẩu có thể được giảm thiểu bằng cách sử dụng Mã thông báo truy cập cá nhân (PAT) trên Github kết hợp với xác thực hai yếu tố trên tài khoản của bạn.
Quảng cáo

Nhược điểm chính đối với hầu hết mọi người là bạn phải nhập mật khẩu Git của mình mỗi khi đẩy. Mặc dù nó được thêm vào bộ nhớ cache, nhưng nó không được định cấu hình để lưu vào bộ nhớ cache vĩnh viễn (mặc dù điều này có thể được thay đổi). Với các khóa SSH, nó chỉ sử dụng tệp khóa trên đĩa mọi lúc.

Ngoài ra, nếu bạn sử dụng 2FA trên tài khoản Github của mình, bạn buộc phải sử dụng SSH hoặc mã thông báo truy cập cá nhân. Mật khẩu tài khoản mặc định của bạn sẽ không hoạt động.

Tại sao sử dụng SSH?

Có một quan niệm sai lầm rằng HTTPS là một giao thức kém an toàn hơn đáng kể so với SSH. Cả hai sẽ cung cấp cho bạn một kết nối an toàn an toàn trước các cuộc tấn công man-in-the-middle (MITM). Cả hai giao thức sẽ thực hiện công việc của chúng giống nhau miễn là các khóa cơ bản được bảo mật. Cả hai đều sẽ sử dụng xác thực dựa trên khóa công khai, mặc dù HTTPS với Git sẽ gửi mật khẩu của bạn qua dây. Và cả hai giao thức đều có thể được định cấu hình để sử dụng xác thực đa yếu tố (MFA / 2FA), mặc dù với Github, việc sử dụng MFA trên tài khoản của bạn sẽ dễ dàng hơn nếu bạn sử dụng khóa SSH.

Nơi SSH dẫn đầu là với yếu tố xác thực — chìa khóa. Chỉ riêng chiều dài của nó đã làm cho nó khó bị rò rỉ vô tình hơn, và do nó khó sử dụng và độc đáo, nó thường an toàn hơn. Nhược điểm duy nhất là nó được lưu trữ dưới dạng tệp người dùng có thể truy cập trên ổ cứng của bạn chứ không phải trong đầu của bạn, nhưng với mức độ tồi tệ của con người về bảo mật, thì có lẽ tốt hơn theo cách đó.

Ngoài ra, nó không dễ bị dính vào một vi phạm dữ liệu. Nó được đảm bảo không được sử dụng lại, nhưng nó cũng không bao giờ được lưu trữ trên máy chủ của người khác. Vì bạn chỉ cung cấp cho Github khóa công khai của mình và sử dụng khóa riêng tư của bạn để thực hiện thử thách xác thực, nên không có nguy cơ bị lộ hoặc thậm chí được gửi qua đường dây.

SSH có nhiều nhược điểm, nhưng chúng có thể được giảm thiểu nếu bạn biết mình đang làm gì:

  • Việc thiết lập tài khoản Github để sử dụng khóa SSH của bạn chỉ yêu cầu một vài lệnh và nhấp chuột trong cài đặt của chúng.
  • Việc quản lý nhiều khóa trên mỗi máy tính không hề đơn giản nhưng không quá khó để thiết lập bằng cách định cấu hình tệp máy chủ SSH và điều khiển từ xa Git của bạn.
  • Bạn có thể chuyển khóa cho các máy khác, nhưng vì bạn có thể có nhiều khóa SSH nên điều này không cần thiết.

LIÊN QUAN: Cách sử dụng một khóa SSH riêng khác cho các lệnh Git Shell

SSH thậm chí có thể được đào qua HTTPS khi truy cập Github, sử dụng ssh.github.com trong cấu hình SSH của bạn. Mặc dù điều này có thể không đúng với tất cả các dịch vụ Git, nhưng đó là một điểm cộng tuyệt vời cho dịch vụ lớn:

Máy chủ github.com
  Tên máy chủ ssh.github.com
  Cổng 443

Các khóa SSH cũng có thể được liên kết với nhau bằng cách sử dụng chuyển tiếp tác nhân SSH, cho phép bạn kết nối với máy chủ từ xa, sau đó sử dụng khóa SSH trên máy khách của bạn để xác thực. Máy chủ từ xa hoạt động như người trung gian, không biết về khóa SSH của bạn.

LIÊN QUAN: SSH Agent Forwarding là gì và bạn sử dụng nó như thế nào?

Bạn nên sử dụng gì?

Câu hỏi là, bạn có nên bận tâm với nó không? Nếu bạn đã có kinh nghiệm với dòng lệnh, không quá khó để chỉ sử dụng các phím và hầu hết mọi người sẽ đơn giản chỉ vì việc cấu hình một lần dễ dàng hơn và không bao giờ nhập lại mật khẩu. Nó cũng hoạt động tốt hơn với 2FA, mà hầu hết các tài khoản Github bảo mật cao có thể sẽ sử dụng.

Nếu bạn chỉ tìm kiếm một trải nghiệm dễ dàng, HTTPS sẽ an toàn miễn là mật khẩu của bạn được bảo mật. Có một lý do mà Github đặt nó làm mặc định và thậm chí đề xuất nó — nó hoạt động tốt và dễ hiểu.

How to Inspect a Docker Image’s Content Without Starting a Container

Cách kiểm tra nội dung của hình ảnh Docker mà không cần khởi động vùng chứa

How to Move Changes to Another Branch in Git

Cách chuyển các thay đổi sang nhánh khác trong Git

What’s New In C# 10?

Có gì mới trong C # 10?

How to Run Your Own DNS Server on Your Local Network

Cách chạy máy chủ DNS của riêng bạn trên mạng cục bộ của bạn

How to Clone or Download a Specific Branch from Github

Cách sao chép hoặc tải xuống một nhánh cụ thể từ Github

How to Clone or Download a Specific Branch from Github

Cách tải xuống các tệp đơn từ kho lưu trữ Github

Dịch từ: https://www.cloudsavvyit.com/14822/should-you-use-https-or-ssh-for-git/

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây