Sử dụng SSH Keys để lưu thông tin xác thực (authentication) khi làm việc với Git trên Ubuntu
Sử dụng SSH keys là phương pháp bảo mật và tiện lợi hơn để lưu thông tin xác thực cho Git mà không cần phải nhập mật khẩu mỗi khi thực hiện thao tác git push hoặc git pull.
1. Tạo SSH Key (nếu bạn chưa có)
Chạy lệnh dưới đây để tạo một SSH key mới:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Trong quá trình tạo, bạn sẽ được yêu cầu nhập đường dẫn lưu key và passphrase (có thể để trống nếu không muốn đặt mật khẩu cho SSH key).
2. Thêm SSH Key vào SSH agent
Chạy các lệnh dưới đây để khởi động SSH agent và thêm SSH key vào:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
3. Thêm SSH Key vào GitHub
Chạy lệnh dưới đây để sao chép nội dung của SSH public key:
cat ~/.ssh/id_rsa.pub
Truy cập vào GitHub và thêm SSH key:
-
Vào Settings > SSH and GPG keys > New SSH key.
-
Điền tùy ý vào Title
-
Chọn Authentication Key ở Key type
-
Điền Key là kết quả sau khi chạy lệnh cat ~/.ssh/id_rsa.pub
4. Cấu hình Git để sử dụng SSH
Chạy lệnh dưới đây để thay đổi URL của remote repository từ HTTPS sang SSH:
git remote set-url origin git@github.com:username/repository.git
5. Xác nhận kết nối SSH
Chạy lệnh dưới đây để kiểm tra kết nối SSH với GitHub:
ssh -T git@github.com
Nếu lần đầu tiên kết nối đến GitHub qua SSH sẽ xuất hiện thông báo xác nhận danh tính như bên dưới
The authenticity of host 'github.com (your_ip)' can't be established.
ECDSA key fingerprint is SHA256:your_key.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
Gõ yes để tiếp tục kết nối
Nếu thành công, bạn sẽ nhận được thông báo:
Hi username! You've successfully authenticated, but GitHub does not provide shell access.