Hướng dẫn sử dụng Git SSH Key
-
Khi clone hoặc push một dự án nếu dùng SSH Key sẽ đỡ tốn thời gian đăng nhập lại nhiều lần.
-
SSH sử dụng 1 cặp khóa bất đối xứng (1 khóa công khai – public key và 1 khóa bí mật – private key) để mã hóa đường truyền, xác thực quyền truy cập.
Xem thêm về kỹ thuật mã hóa Asymmetrical encryption |
-
Trong các repository git sử dụng ssh để truy cập thì người dùng cần cung cấp khóa công khai (public key) cho server và giữ lại khóa bí mật (private key) ở máy tính của mình để đảm bảo truy cập được hệ thống.
-
Tạo SSH key
ssh-keygen -t ed25519
|
Xem thêm về ed25519
Một số câu hỏi sẽ hiện ra:
Enter file in which to save the key (/home/tommy/.ssh/id_ed25519):
-
Thông thường nên để trống (nhẫn Enter). Hệ thống sẽ tạo một cặp khóa trong một đường dẫn mặc định (path) với tên là id_ed25519. Còn không, bạn có thể viết tên vào đó để đặt tên cho cặp khóa của bạn.
-
Bạn sẽ thấy dòng chữ
Your public key has been saved in:
-
Theo path đó, bạn mở file và copy public key.
cat ~/.ssh/id_ed25519.pub
-
Ngoài ra, khi tạo key, trong thư mục .ssh sẽ chưa các file như authorized_keys, knowhosts, private_key (id_ed25519), public_key.pub (id_ed25519.pub)
-
SSH: là biện pháp bảo mật dữ liệu khi truyền thông tin giữa các hệ thống với nhau.
-
authorized_keys: chứa danh sách các public keys, dùng để xác thực kết nối từ bên ngoài vào.
-
know_hosts: Khi lần đầu kết nối đến server bên ngoài, know_hosts file sẽ chứa các public keys mà bạn đã kết nối đến các server đó. Và know_hosts file dùng để kết nối server của bạn đến server khác.
-
private_key: chứa private key cho phép máy chủ bên ngoài truy cập vào máy chủ đó. Được sinh ra sau khi tạo mã (sra).
-
public_key.pub: chứa public key dùng để kết nối đến server khác.
-
-
Như đã nói, chúng ta sẽ dùng public key để kết nối máy tính cá nhân với máy chủ GitLab.
-
Đăng nhập vào
<a href="https://github.com/" class="bare">github.com/</a>
→ Avatar → Settings → SSH and GPG Key → New SSH Key -
Điền public key vào phần Title, Key và nhấp Add SSH Key
Từ giờ, bạn có thể thao tác trên GitLab mà không cần phải thực hiện đăng nhập nhiều lần nữa.