Chào 500 anh em yêu tech. Lại là mình đây, hôm nay lại rảnh mình chia sẻ anh em một tips về git đó là làm thế nào tạo một SSH key cho project. Cụ thể xác thực ssh key cho github, gitlab trong project.
1. SSH Key là gì?
SSH key là việc sử dụng Public SSH key ở server, và Private SSH Key ở Client để chúng xác thực khi kết nối.
- Public Key khóa chung, là một file text - nó lại lưu ở phía Server SSH, nó dùng để khi Client gửi Private Key (file lưu ở Client) lên để xác thực thì kiểm tra phù hợp giữa Private Key và Public Key này. Nếu phù hợp thì cho kết nối.
- Private Key khóa riêng, là một file text bên trong nó chứa mã riêng để xác thực (xác thực là kiểm tra sự phù hợp của Private Key và Public Key). Máy khách kết nối với máy chủ phải chỉ ra file này khi kết nối SSH thay vì nhập mật khẩu
2. Tạo một SSH Key
Ở đây mình tạo một ssh key dùng ed25519 và dùng .pem extension
$ ssh-keygen -t ed25519 -f ~/.ssh/git-test.pem
Enter passphrase (empty for no passphrase): # <press-enter>
Enter same passphrase again: # <press-enter>
Your identification has been saved in /home/xxxxx/.ssh/git-test.pem
Your public key has been saved in /home/xxxxx/.ssh/git-test.pem.pub
Sau khi chạy lệnh trên sẽ có 2 file là git-test.pem.pub
và to git-test.pem
Các bạn đổi file git-test.pem.pub
thành git-test.pub
$ mv ~/.ssh/git-test.pem.pub ~/.ssh/git-test.pub
Đối với file public key có nội dung như sau:
cat ~/.ssh/git-test.pub
ssh-ed25519 AAAAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx username@computer
Ở đây mình dùng github. Nên mình chép nội dung này và thêm vào setting trên github. Gitlab các bạn cũng làm tương tự
Thêm mới một ssh key
Đối với file private key có nội dung như sau:
cat ~/.ssh/git-test.pem
-----BEGIN OPENSSH PRIVATE KEY-----
b3Blxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxQFBgc=
-----END OPENSSH PRIVATE KEY-----
File này được lưu tại máy client các bạn để xác thực cho việc kết nối là chìa khoá để mở ổ khoá nên các bạn lưu trữ cẩn thận.
3. Tổng kết
Tổng kết lại thì qua bài vết ngắn này các bạn hiểu làm thế nào tạo một SSH key cho project dùng github, gitlab... Chúc các bạn thành công.!