Khác với SVN, khi bạn checkout sử dụng svn, tài khoản của bạn sẽ được ghi nhớ lại. Để khi sử dụng các lệnh svn khác, bạn sẽ không phải gõ lại tài khoản và mật khẩu. Nhưng khi sử dụng git thì 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.
Vì vậy hôm nay vinasupport.com sẽ hướng dẫn các bạn 3 cách để xác thực tự động tài khoản git. Các cách này đều có thể áp dụng cho tài khoản Github, Gitlab…
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://[email protected]': <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 "[email protected]"
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 [email protected]
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.
Để clone source từ Github, hay Gitlab các bạn sử dụng đường dẫn với không http/https ở đầu, mà thay thế nó bằng:
$ git clone [email protected]:<username>/vinasupport.com.git
Nguồn: vinasupport.com