Git và GitHub là những công cụ cần thiết cho mọi nhà phát triển. Chúng được sử dụng rộng rãi trong hầu hết mọi loại dự án phát triển phần mềm.
Có các dịch vụ lưu trữ Git khác như Gitlab và Bitbucket, nhưng GitHub là lựa chọn phổ biến nhất cho các nhà phát triển. Bạn thậm chí có thể chỉnh sửa hồ sơ của mình để có vẻ hấp dẫn hơn đối với nhà tuyển dụng.
Bạn có thể sử dụng Git và GitHub để tổ chức các dự án của mình, cộng tác với các nhà phát triển khác và – tất nhiên – tại dulichgiasieure.
Nhưng vì Git và GitHub là những công cụ khác nhau nhưng có liên quan đến nhau, bạn cần cập nhật quy trình làm việc của mình liên tục với từng công cụ.
Chúng tôi khuyên bạn nên sử dụng khóa SSH cho từng máy của mình. Vì vậy, trong hướng dẫn này, bạn sẽ tìm hiểu chúng là gì, một số ưu điểm của chúng cũng như cách tạo và định cấu hình các khóa SSH của GitHub.
Bắt đầu nào!
Phím SSH là gì?
Nói một cách đơn giản, khóa SSH là thông tin đăng nhập được sử dụng cho giao thức SSH (Secure Shell) để cho phép truy cập an toàn vào các máy tính từ xa qua internet. Thông thường, xác thực đó xảy ra trong môi trường dòng lệnh.
Giao thức này dựa trên kiến trúc máy khách-máy chủ, có nghĩa là bạn với tư cách là người dùng (hoặc “máy khách”) cần sử dụng phần mềm đặc biệt, được gọi là máy khách SSH, để đăng nhập vào máy chủ từ xa và thực hiện các lệnh. Về cơ bản đây là những gì bạn đang làm khi xác thực qua thiết bị đầu cuối tới GitHub.
Nhưng SSH không chỉ được sử dụng cho GitHub. Nó được sử dụng rộng rãi bởi các nền tảng khác như dulichgiasieure, Google Cloud và các dịch vụ Web Amazon để tạo ra một kênh an toàn để truy cập các dịch vụ của họ.
Bây giờ, đi vào cách các khóa SSH thực sự hoạt động, bạn cần hiểu sự khác biệt giữa khóa công khai và khóa riêng tư.
Khóa công khai và khóa riêng tư
Hãy bắt đầu với những điều cơ bản.
Giao thức SSH sử dụng một kỹ thuật mật mã được gọi là mã hóa bất đối xứng. Thuật ngữ này nghe có vẻ phức tạp và kỳ lạ, nhưng không có gì có thể xa hơn sự thật.
Về cơ bản, mã hóa không đối xứng là một hệ thống sử dụng một cặp khóa, cụ thể là công cộng và riêng chìa khóa.
Như bạn có thể đoán, khóa công khai có thể được chia sẻ với bất kỳ ai. Mục đích chính của nó là mã hóa dữ liệu, chuyển thông điệp thành mã bí mật hoặc bản mã. Khóa này thường được gửi đến các hệ thống khác – ví dụ: máy chủ – để mã hóa dữ liệu trước khi gửi qua internet.
Mặt khác, khóa cá nhân là khóa mà bạn phải giữ cho riêng mình. Nó được sử dụng để giải mã dữ liệu đã mã hóa bằng khóa công khai của bạn. Không có nó, không thể giải mã thông tin được mã hóa của bạn.
Phương pháp này cho phép bạn và máy chủ giữ một kênh liên lạc an toàn để truyền thông tin.
Đây là những gì xảy ra trong nền khi bạn kết nối với máy chủ qua SSH:
- Máy khách gửi khóa công khai đến máy chủ.
- Máy chủ yêu cầu máy khách ký một thông báo ngẫu nhiên được mã hóa bằng khóa công khai bằng khóa riêng.
- Máy khách ký thông báo và chuyển tiếp kết quả đến máy chủ.
- Một kết nối an toàn được thiết lập giữa máy khách và máy chủ.
Điều quan trọng là phải giữ các khóa riêng tư của bạn an toàn và chia sẻ chúng với bất kỳ ai trong mọi trường hợp. Chúng thực sự là chìa khóa cho tất cả thông tin được gửi cho bạn.
Sử dụng khóa SSH với GitHub
Kể từ ngày 13 tháng 8 năm 2021, Github không còn chấp nhận xác thực mật khẩu để truy cập dòng lệnh. Điều này có nghĩa là bây giờ bạn cần xác thực thông qua mã thông báo truy cập cá nhân hoặc sử dụng khóa SSH (tiện lợi hơn một chút).
Đây là những gì sẽ xảy ra khi bạn cố gắng xác thực bằng mật khẩu GitHub của mình qua HTTP trong một thiết bị đầu cuối:
Username for 'https://github.com': yourusername
Password for 'https://[email protected]':
remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.
fatal: Authentication failed for 'https://github.com/yourusername/repository.git/'
GitHub cần khóa công khai của bạn để cho phép bạn chỉnh sửa bất kỳ kho lưu trữ nào của bạn thông qua SSH.
Hãy xem cách bạn có thể tạo khóa SSH cục bộ.
Cách tạo khóa SSH cục bộ
Bây giờ bạn đã hiểu một chút về giao thức SSH và sự khác biệt giữa khóa công khai và khóa riêng tư, đã đến lúc thiết lập kênh SSH an toàn giữa máy tính của bạn và kho lưu trữ GitHub của bạn.
Trước khi chúng tôi tiếp tục, bạn phải có tài khoản GitHub và dấu nhắc lệnh / thiết bị đầu cuối với Git được cài đặt trong hệ thống của bạn. Nếu bạn đang chạy Windows, hãy đảm bảo rằng bạn đã cài đặt Git bash, trong đó có tất cả các công cụ mà bạn cần để làm theo cùng với hướng dẫn này được tích hợp sẵn.
Ứng dụng khách OpenSSH là phần mềm nguồn mở phổ biến nhất được sử dụng để kết nối qua SSH. Bạn sẽ không cần phải lo lắng về hệ điều hành của mình vì nó được cài đặt mặc định trên Linux, macOS và Windows 10.
Bạn cần kích hoạt dấu nhắc lệnh trên Windows hoặc thiết bị đầu cuối trên hệ thống dựa trên Unix để tạo khóa SSH cục bộ. Thông thường, bạn có thể thực hiện việc này bằng cách tìm kiếm “terminal”, “cmd” hoặc “powershell” trong bảng ứng dụng của mình, sau đó nhấp vào biểu tượng hiển thị.
Sau khi thực hiện, bạn sẽ có một cửa sổ tương tự như hình sau.
Chạy lệnh sau để tạo cặp khóa SSH cục bộ:
ssh-keygen -t ed25519 -C "[email protected]"
Đã đến lúc bật mí cho bạn một bí mật: Không ai có thể thực sự nhớ được lệnh này! Hầu hết các nhà phát triển phải Google nó mọi lúc vì:
- Đó là một lệnh thực sự dài, với những con số có vẻ ngẫu nhiên, đáng quên.
- Chúng tôi hiếm khi sử dụng nó, vì vậy không đáng để chúng tôi lưu nó vào bộ nhớ hầu hết thời gian.
Tuy nhiên, điều quan trọng là phải hiểu từng lệnh mà chúng tôi đưa vào thiết bị đầu cuối của mình, vì vậy hãy xem từng phần của lệnh này có ý nghĩa gì.
- ssh-keygen: Công cụ dòng lệnh được sử dụng để tạo một cặp khóa SSH mới. Bạn có thể thấy cờ của nó với
ssh-keygen help
- -t ed25519: Các
-t
cờ được sử dụng để chỉ ra thuật toán được sử dụng để tạo ra chữ ký số của cặp khóa. Nếu hệ thống của bạn hỗ trợ nó,ed25519
là thuật toán tốt nhất bạn có thể sử dụng để tạo cặp khóa SSH. - -C “email”: Các
-c
cờ được sử dụng để cung cấp nhận xét tùy chỉnh ở cuối khóa công khai, thường là email hoặc nhận dạng của người tạo cặp khóa.
Sau khi bạn nhập lệnh vào thiết bị đầu cuối của mình, bạn sẽ phải nhập tệp mà bạn muốn lưu các phím. Theo mặc định, nó nằm trong thư mục chính của bạn, trong một thư mục ẩn có tên “.ssh”, nhưng bạn có thể thay đổi nó thành bất cứ thứ gì bạn muốn.
Sau đó, bạn sẽ được yêu cầu nhập cụm mật khẩu để thêm vào cặp khóa của mình. Điều này bổ sung thêm một lớp bảo mật nếu bất cứ lúc nào, thiết bị của bạn bị xâm phạm. Không bắt buộc phải thêm cụm mật khẩu, nhưng nó luôn được khuyến khích.
Đây là toàn bộ quá trình trông như thế nào:
Như bạn có thể thấy, lệnh này tạo hai tệp trong thư mục bạn đã chọn (thường là ~ / .ssh): khóa công khai với .pub
phần mở rộng và phần riêng tư không có phần mở rộng.
Chúng tôi sẽ chỉ cho bạn cách thêm khóa công khai vào tài khoản GitHub của bạn sau.
Thêm khóa SSH vào ssh-agent
Các ssh-agent chương trình chạy ở chế độ nền, giữ các khóa cá nhân và mật khẩu của bạn một cách an toàn, đồng thời giữ cho chúng sẵn sàng sử dụng bởi ssh. Đó là một tiện ích tuyệt vời giúp bạn không phải gõ cụm mật khẩu mỗi khi bạn muốn kết nối với máy chủ.
Vì lý do này, bạn sẽ thêm khóa cá nhân mới của mình vào đại lý này. Đây là cách thực hiện:
- Đảm bảo ssh-agent đang chạy ở chế độ nền.
eval `ssh-agent` # Agent pid 334065
Nếu bạn nhận được một thông báo tương tự như thế này nếu mọi thứ đều ổn. Nó có nghĩa là ssh-agent đang chạy dưới một id quy trình cụ thể (PID).
- Thêm khóa cá nhân SSH của bạn (khóa không có phần mở rộng) vào ssh-agent.
ssh-add ~/.ssh/dulichgiasieure_keys
Thay thế dulichgiasieure_keys với tên của khóa SSH của bạn. Nếu đây là khóa đầu tiên bạn đã tạo, thì nó phải được đặt tên là “id_algorithm_used”, ví dụ: id_ed25519.
Thêm khóa SSH vào tài khoản GitHub
Bước cuối cùng là thêm khóa công khai của bạn vào tài khoản GitHub. Chỉ cần làm theo các hướng dẫn sau:
- Sao chép khóa công khai SSH của bạn vào khay nhớ tạm. Bạn có thể mở tệp nơi nó được đặt bằng trình soạn thảo văn bản và sao chép nó hoặc sử dụng thiết bị đầu cuối để hiển thị nội dung của nó.
cat ~/.ssh/dulichgiasieure_keys.pub # ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJl3dIeudNqd0DPMRD6OIh65tjkxFNOtwGcWB2gCgPhk [email protected]
- Đăng nhập vào GitHub]và chuyển đến phần phía trên bên phải của trang, nhấp vào ảnh hồ sơ của bạn và chọn Cài đặt.
Cài đặt GitHub. - Sau đó, trong hồ sơ cài đặt của bạn, hãy nhấp vào Khóa SSH và GPG.
Khóa SSH và GPG. - Nhấn vào Khóa SSH mới cái nút.
Nút phím SSH mới. - Cung cấp khóa SSH mới của bạn trên GitHub Chức vụ – thông thường, thiết bị bạn sẽ sử dụng khóa đó. Và sau đó dán khóa vào Chìa khóa diện tích.
Thêm một biểu mẫu khóa SSH mới. - Thêm khóa SSH của bạn.
Thêm nút khóa SSH.
Kiểm tra kết nối SSH bằng Repo Push
Đã đến lúc kiểm tra mọi thứ bạn đã làm cho đến nay. Bạn sẽ thay đổi, cam kết và đẩy đến một trong các kho lưu trữ hiện có của mình bằng SSH để đảm bảo kết nối của bạn được thiết lập chính xác.
Đối với ví dụ của chúng tôi, chúng tôi sẽ sửa đổi trang web HTML đơn giản mà chúng tôi đã tạo trong hướng dẫn Git for Web Development của chúng tôi.
Đầu tiên, chúng ta cần sao chép kho lưu trữ vào máy cục bộ của mình. Chúng ta có thể vào trang repo trên GitHub và sao chép địa chỉ SSH mà nó cung cấp.
Sau đó, sao chép repo bằng cách sử dụng một thiết bị đầu cuối:
git clone [email protected]:DaniDiazTech/HTML-site.git
Bây giờ, hãy thêm một đơn giản <h1>
gắn thẻ trong index.html tập tin:
...
<div class="container my-2">
<h1 class="text-center">A new title!<h1>
</div>
<div class="container my-3">
...
Chúng tôi không chạm vào bất kỳ JavaScript hoặc CSS nào để giữ cho việc chỉnh sửa này trở nên đơn giản. Nhưng nếu bạn có kỹ năng về JavaScript, bạn có thể tìm thấy một chỗ đứng tại dulichgiasieure. Kiểm tra các kỹ năng viết mã mà bạn cần để trở thành một phần của nhóm dulichgiasieure.
Sau khi thực hiện việc này, hãy thực hiện các thay đổi:
git commit -am "Added a simple title"
Và đẩy chúng vào GitHub giống như cách bạn thường làm.
git push
Nếu mọi thứ diễn ra tốt đẹp, xin chúc mừng! Bạn vừa thiết lập kết nối SSH giữa máy của mình và GitHub.
Quản lý nhiều khóa SSH cho các tài khoản GitHub khác nhau
Nếu bạn có nhiều tài khoản GitHub – giả sử một tài khoản dành cho các dự án cá nhân và một tài khoản dành cho công việc của bạn – thật khó để sử dụng SSH cho cả hai tài khoản đó. Thông thường, bạn sẽ cần các máy riêng biệt để xác thực cho các tài khoản GitHub khác nhau.
Nhưng điều này có thể được giải quyết dễ dàng bằng cách cấu hình tệp cấu hình SSH.
Hãy vào đó.
- Tạo một cặp khóa SSH khác và thêm nó vào tài khoản GitHub khác của bạn. Hãy ghi nhớ tên của tệp mà bạn đang gán khóa mới.
ssh-keygen -t ed25519 -C "[email protected]"
- Tạo tệp cấu hình SSH. Tệp cấu hình cho chương trình ssh biết nó sẽ hoạt động như thế nào. Theo mặc định, tệp cấu hình có thể không tồn tại, vì vậy hãy tạo tệp bên trong thư mục .ssh /:
touch ~/.ssh/config
- Sửa đổi tệp cấu hình SSH. Mở tệp cấu hình và dán mã bên dưới:
#Your day-to-day GitHub account Host github.com HostName github.com IdentityFile ~/.ssh/id_ed25519 IdentitiesOnly yes # Work account Host github-work HostName github.com IdentityFile ~/.ssh/work_key_file IdentitiesOnly yes
Bây giờ, mỗi khi bạn cần xác thực qua SSH bằng tài khoản cơ quan hoặc tài khoản phụ của mình, bạn sẽ chỉnh sửa một chút địa chỉ SSH repo, từ:
[email protected]:workaccount/project.git
…đến:
[email protected]:workaccount/project.git
Bản tóm tắt
Xin chúc mừng – bạn đã học được hầu hết các kiến thức thực tế cần thiết để kết nối với GitHub qua SSH!
Hướng dẫn này đã thảo luận về sự cần thiết của giao thức SSH, sự khác biệt giữa khóa công khai và khóa riêng tư, cách tạo khóa, thêm chúng vào GitHub và thậm chí quản lý nhiều khóa SSH cho các tài khoản GitHub khác nhau. Hãy nhớ rằng trừ khi bạn muốn mất quyền truy cập vào mọi thứ, khóa riêng tư của bạn cần phải giữ nguyên như vậy: riêng tư.
Với kiến thức này, bây giờ bạn đã sẵn sàng để phát triển một quy trình làm việc hoàn hảo với Git và GitHub. Tiếp tục viết mã!
Tiết kiệm thời gian, chi phí và tối đa hóa hiệu suất trang web với:
- Trợ giúp tức thì từ các chuyên gia lưu trữ WordPress, 24/7.
- Tích hợp Cloudflare Enterprise.
- Tiếp cận khán giả toàn cầu với 29 trung tâm dữ liệu trên toàn thế giới.
- Tối ưu hóa với Giám sát Hiệu suất Ứng dụng được tích hợp sẵn của chúng tôi.
Tất cả những điều đó và hơn thế nữa, trong một kế hoạch không có hợp đồng dài hạn, hỗ trợ di chuyển và đảm bảo hoàn tiền trong 30 ngày. Kiểm tra các kế hoạch của chúng tôi hoặc nói chuyện với bộ phận bán hàng để tìm ra kế hoạch phù hợp với bạn.
Leave a Reply
You must be logged in to post a comment.