Git – Sử dụng SSH Key

Git – Sử dụng 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
  • Ngoài key ed25519 ra còn có các loại key khác như:

    • DSA: Không còn an toàn và cũng không được hỗ trợ kể từ phiên bản OpenSSH7 (hiện tại là phiên bản OpenSSH 8.3).

    • RSA: Độ an toàn phụ thuộc vào độ dài key. Nên khuyến cáo sử dụng độ dài key từ 3072-bit hoặc 4096-bit.

    • ECDSA: Mỗi khi thay đổi nội dung gói tin truyền đi, máy sẽ tạo lại một mã chữ ký (chữ ký dùng để xác thực giữa hai bên).

  • Vì sao nên dùng ed25519?

    • Về bảo mật: ed25519 sử dụng collision resistance nên rất bảo mật. An toàn hơn so với RSA (nếu mã RSA có độ dài dưới 2048-bit).

    • Tốc độ: ed25519 public-key chỉ chưa 68 ký tự, ngắn hơn RSA 3072-bit chứa đến 544 ký tự nên tốc độ giao tiếp giữa client-server cũng nhanh hơn. Nhanh hơn so với ECDSA vì mỗi lần truyền tải gói tin, ECDSA lại tạo một mã hash cho chữ ký để xác thực (điều này phụ thuộc vào tốc đố của máy tính).

Xem thêm về ed25519

create SSH Key

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
SSHKey 2
  • 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)

    1. 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.

    2. 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.

    3. 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.

    4. 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).

    5. 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.

ssh file
  • Đă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

SSHKey

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.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *