Khác với SVN, khi sử dụng SVN để checkout, tài khoản của bạn sẽ tự động được ghi nhớ. Điều này có nghĩa rằng sau khi bạn đã nhập tài khoản và mật khẩu lần đầu, bạn sẽ không cần phải gõ lại chúng mỗi khi sử dụng các lệnh SVN khác.
Tuy nhiên, với Git, điều này hoàn toàn khác. Mặc định, Git luôn yêu cầu bạn nhập tên tài khoản và mật khẩu mỗi khi bạn thực hiện các hoạt động. Điều này có thể khiến việc làm việc với Git trở nên phiền phức.
Chính vì vậy, trong bài viết này, chúng tôi sẽ hướng dẫn bạn về 3 cách để tự động xác thực tài khoản Git. Các phương pháp này có thể được áp dụng cho các tài khoản Git trên các dịch vụ như Github, Gitlab và nhiều nền tảng khác.
Cách 1: Xác thực tự động với .netrc
Hãy tạo một file với đường dẫn ~/.netrc có nội dung như sau:
machine github.com login <username> password <password>
Lưu ý:
- Khi clone source bạn cần sử dụng đường dẫn với prefix là http/https thay cho ssh
- Cách này chỉ áp dụng cho Linux, Mac. Windows thì không sử dụng được.
- Password ở dạng plain text (Kém bảo mật)
Cách 2: Sử dụng git credential.helper
Sử dụng command bên dưới, sẽ cache lại tài khoản git của bạn.
$ git config credential.helper store $ git clone https://github.com/vinasupport.com.git Username for 'https://github.com': <USERNAME> Password for 'https://USERNAME@github.com': <PASSWORD>
Bạn nên chỉ ra thời hạn lưu trữ tài khoản bằng command bên dưới:
$ git config --global credential.helper 'cache --timeout=3600'
Ví dụ trên mình chỉ lưu trữ thông tin tài khoản trong 3600 giây (1 giờ)
Cách 3: Sử dụng SSH Key
Đây là cách xác thực tốt nhất, giúp bảo mật tài khoản của bạn. Tuy nhiên nó hơi phức tạp, mình sẽ hướng dẫn các bạn từng bước.
Bước 1: Tạo một SSH Key:
$ ssh-keygen -t rsa -b 4096 -C "admin@vinasupport.com"
Câu lệnh trên sẽ tạo ra 1 cặp key là id_rsa (private key), và id_rsa.pub (public key), lưu trữ trong thư mục mặc định là ~/.ssh. Trong quá trình tạo key, bạn có thể chọn đường dẫn khác thay thế.
Bước 2: Thêm SSH Key vào tài khoản của bạn trên Github, Gitlab
Các bạn copy nội dung của file id_rsa.pub (Public key) vào tài khoản của bạn.
Trên Github:
Truy cập vào đường dẫn từ tài khoản của bạn -> Settings -> SSH and GPG Keys -> Bấm vào button [ New SSH Key ] -> Nhập nội dung Public Key của bạn.
Trên Gitlab:
Truy cập vào đường dẫn từ tài khoản của bạn -> Settings -> SSH Keys –> Nhập nội dung Public Key của bạn.
Bước 3: Kiểm tra kết nối SSH của bạn
$ ssh -T git@github.com
Nếu các bạn nhận được thông báo dưới dây, SSH Keys của các bạn đang hoạt động tốt.
Hi username! You’ve successfully authenticated, but GitHub does not
provide shell access.
Để sao chép mã nguồn từ GitHub hoặc GitLab, bạn cần sử dụng đường dẫn không chứa “http/https” ở đầu, thay vào đó, bạn nên thay thế nó bằng:
$ git clone git@github.com:<username>/vinascript.com.git