Thông tin liên hệ
- 036.686.3943
- admin@nguoicodonvn2008.info
Bằng cách dùng xác thực không mật khẩu qua SSH để đăng nhập GitHub, bạn sẽ tiết kiệm được rất nhiều thời gian. Dưới đây là hướng dẫn chi tiết.
Xác thực trên GitHub thường liên quan tới việc dùng một token truy cập hoặc mật khẩu. Tuy nhiên, những phương thức này có thể không thuận tiện và kém bảo mật, nhất là khi truy cập GitHub từ nhiều thiết bị.
GitHub cung cấp lựa chọn dùng Secure Shell (SSH) để xác thực. SSH trình bày một giao thức mạng an toàn cho truy cập máy từ xa. Tính năng này đặc biệt đáng giá trong nhiều tình huống đòi hỏi truy cập từ xa tự động hoặc thường xuyên.
Xác thực với SSH liên quan tới việc dùng các khóa mật mã thiết lập kết nối an toàn (tunnel) giữa một client (máy cục bộ) và server (GitHub).
Khi dùng SSH cho GitHub, một người dùng tạo một cặp khóa SSH - một khóa công khai và một khóa riêng tư. Khóa công khai được upload lên tài khoản GitHub của người dùng, còn khóa riêng tư vẫn được lưu an toàn trên máy cục bộ của người dùng.
Quá trình này có thể được ví như khái niệm về ổ khóa và chìa khóa. Khóa công khai (khóa) nhằm mục đích chia sẻ công khai và lưu trữ an toàn ở phía máy chủ. Nó hoạt động như một đối trọng với khóa cá nhân, cho phép máy chủ xác minh danh tính của máy cục bộ của bạn. Ngược lại, khóa riêng (key) hoạt động như một mã định danh duy nhất được lưu trữ riêng trên máy cục bộ của bạn, cho phép xác thực thành công với máy chủ.
Trong khi xác thực trên GitHub, máy cục bộ hiện khóa riêng như một bằng chứng nhận dạng. Server này kiểm tra xem liệu khóa công khai tương ứng được liên kết với tài khoản GitHub của bạn có khớp với khóa riêng tư được cung cấp hay không. Nếu các khóa khớp nhau, server cấp quyền truy cập, thiết lập kết nối được mã hóa và an toàn cho giao tiếp.
Ở phần này, bạn sẽ thấy cách thiết lập SSH đê xác thực với GitHub.
Quá trình tạo cặp khóa SSH là bước đầu tiên dùng SSH cho việc xác thực.
1. Mở terminal hoặc cửa sổ nhắc lệnh.
2. Chạy lệnh tạo cặp khóa SSH mới sau:
ssh-keygen -t rsa -b 4096 -C "youremail@domain.com"
3. Bạn sẽ được nhắc nhập một vị trí file để lưu cặp khóa. Nhấn Enter để chấp nhận vị trí mặc định (~/.ssh/id_rsa) hoặc xác định một vị trí tùy biến.
> Generating public/private rsa key pair.
> Enter file in which to save the key (/home/vagrant/.ssh/id_rsa):
4. Tiếp theo, bạn sẽ được yêu cầu nhập một passphrase. Dù là tùy chọn, thêm một passpharase hoạt động như một cấp bảo mật bổ sung. Đảm bảo bạn nhớ passphrase.
> Enter passphrase (empty for no passphrase):
> Enter same passphrase again:
5. Sau khi tạo cặp khóa, bạn sẽ thấy 2 file ở id_rsa (khóa riêng tư) và id_rsa.pub (khóa công khai).
> Your identification has been saved in /home/vagrant/.ssh/id_rsa.
> Your public key has been saved in /home/vagrant/.ssh/id_rsa.pub.
6. Sau khi hoàn thành, fingerprint các phím và ảnh nghệ thuật ngẫu nhiên được hiển thị.
7. Cuối cùng, bạn sẽ cần nội dung của khóa công khai để thêm GitHub. Chạy lệnh sau để tải nội dung:
cat ~/.ssh/id_rsa.pub
Đảm bảo chỉ định đường dẫn (ở đây là ~/.ssh/id_rsa.pub), bạn đã dùng khi tạo các khóa.
Sao chép nội dung tới vị trí an toàn và tạm thời để sử dụng sau.
Giờ bạn đã tạo một cặp khóa SSH, bạn cần thêm khóa công khai vào tài khoản GitHub.
1. Đăng nhập tài khoản GitHub và tới Account Settings.
2. Click SSH and GPG keys ở thanh bên trái.
3. Click New SSH key.
4. Đặt tiêu đề (Title) cho SSH key.
5. Dán nội dung khóa công khai vào trường Key.
6. Cuối cùng, click Add SSH key để lưu khóa SSH vào tài khoản GitHub của bạn.
Bạn đã thành công xuất khóa công khai sang GitHub Account cá nhân.
SSH Agent là một chương trình giúp quản lý các khóa SSH và cung cấp một cách an toàn để lưu và sử dụng chúng. Nó hoạt động như một trung gian giữa máy cục bộ của bạn và máy chủ từ xa trong quá trình xác thực SSH. Điều này giúp bạn quản lý nhiều khóa SSH cho các tài khoản GitHub khác nhau.
1. Đảm bảo SSH Agent đang chạy.
$ eval "$(ssh-agent -s)"
> Agent pid 2757
Thêm khóa riêng tư cho SSH Agent
$ ssh-add ~/.ssh/id_rsa
> Enter passphrase for /home/vagrant/.ssh/id_rsa:
> Identity added: /home/vagrant/.ssh/id_rsa (/home/vagrant/.ssh/id_rsa)
Bạn đã thành công cấu hình một SSH Agent để quản lý khóa.
Giờ bạn có thể kiểm tra để xác minh kết nối SSH được thiết lập đúng cách. Bạn có thể xác thực trên GitHub bằng SSH.
Chạy lệnh bên dưới để kiểm tra kết nối SSH với GitHub.
ssh -T git@github.com
Nếu mọi thứ đều ổn, bạn sẽ thấy cảnh báo liên quan tới fingerprint. Xác nhận fingerprint và nhập yes để tiếp tục.
> The authenticity of host 'github.com (140.92.130.4)' can't be established.
> ECDSA key fingerprint is SHA256:p2QAMXNIC1TJYWeIOttrVc98/R1BUFWu3/LiyKgUfQM.
> Are you sure you want to continue connecting (yes/no)?
Sau khi nhập yes, bạn sẽ thấy kết quả tương tự như bên dưới.
> Warning: Permanently added 'github.com,140.92.130.4' (ECDSA) to the list of known hosts.
> Hi princewillingoo! You've successfully authenticated, but GitHub does not provide shell access.
Điều này cho biết xác thực đã thành công.
Cấu hình SSH cho phép bạn quản lý các repository nếu không phải lo lắng về rắc rối liên quan tới mật khẩu và token truy cập.
git remote set-url origin git@github.com:<username>/<repository>.git
git clone git@github.com:<username>/<repository>.git
git push origin <branch>
git pull origin <branch>
git pull origin <branch>
Dùng SSH xác thực cung cấp một số ưu điểm nổi bật so với những phương thức xác thực dựa trên mật khẩu, bao gồm:
Vì lí do này, xác thực SSH thường là lựa chọn tốt hơn so với xác thực bằng mật khẩu.
Để đảm bảo thiết lập SSH mượt mà và an toàn, bạn nên làm theo những cách áp dụng tốt nhất và biết các lỗi phổ biến có thể xảy ra cùng giải pháp khắc phục chúng.
Bằng cách tuân thủ các phương pháp hay nhất này, bạn có thể tự tin sử dụng xác thực SSH cho GitHub.
Nguồn tin: Quantrimang.com
Ý kiến bạn đọc
Những tin mới hơn
Những tin cũ hơn