Tạo SSH Key Và Xác Thực Kết Nối SSH Bằng Public/Private Key
Có thể bạn quan tâm
Phần này nói về xác thực bằng SSH Key, cách sử dụng chúng để nhanh chóng tạo kết nối an toàn, tiện dụng.
- Cơ chế xác thực bằng SSH Key
- Tạo Private / Publich SSH Key
- Xác thực bằng Public/Private key
Cơ chế xác thực bằng SSH Key
Ngoài cơ chế xác thức bằng cách nhập mật khẩu như trên còn có cơ chế sử dụng SSH Key để xác thực. Để tạo nên xác thực này cần có hai file, một file lưu Private Key và môt lưu Public key
- 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. Hãy lưu file Private key cận thận, bất kỳ ai có file này có thể thực hiện kết nối đến máy chủ của bạn
Tạo SSH Key (Public/Private)
Có nhiều cách để có được SSH Key (cặp Private Key và Public Key). Miễn là sau khi có căp file này thì file Public Key lưu ở vị trí phù hợp tại Server (xem trên), còn Private key dùng ở máy khách để kết nối. Dưới đây là một cách có được cặp file này (dùng lệnh ssh-keygen của OpenSSH chạy ở Server hoặc Client đều được):
Mở terminate (trên Linux, macOS hoặc cmd trên Windows) rồi gõ dòng lệnh:
ssh-keygen -t rsaĐầu tiên nó hỏi nhập thư mục sẽ lưu key sinh ra, hãy nhập thư mục - tên file muốn lưu hoặc nhấn Enter để sử dụng đường dẫn nó gợi ý (~/.ssh/id_rsa, ví dụ trên máy tôi /Users/xuanthulab/.ssh/id_rsa). Sau đó nó yêu cầu nhập passphase, nhấn Enter để rỗng. Cuối cùng nó sinh ra hai file key có tên id_rsa và id_rsa.pub ở thư mục đã nhập trên.
Kết quả lệnh trên bạn đã có:
- Private Key chứa trong file ~/.ssh/id_rsa, hãy lưu lại cẩn thận, nó được dùng để SSH client (máy local) kết nối đến Server. Mở file này ra, đoạn mã Private Key có dạng
Bạn có thể lưu nội dung đoạn mã này để sau này sử dụng.
- Public Key chứa trong file ~/.ssh/id_rsa.pub, hãy copy nội dung bên trong file - giữ cận thận, Nó được lưu (dùng) ở máy Server để xác thực khi có Private key gửi đến. Nếu mở file này ra, thì nội dung mã Public key nhìn thấy có dạng:
Bạn có thể lưu mã này lại để sau này sử dụng
Cách phát sinh SSH Key giống hệt trên Linux, các file kết quả lưu tại %homepath%\.ssh\. Với %homepath% là thư mục gốc của User, ví dụ như bạn đang đăng nhập với User là Administrator thì %homepath% là C:\Users\Administrator\
Xác thực bằng SSH Key
Khi SSH Server bật chế độ cho phép xác sự bằng SSH Key, thì tại Server cấu hình để nó nhận biết có Public Key lưu ở file nào đó trên Server. Sau đó, ở máy Client (local) khi kết nối sẽ gửi Private Key lên, nếu nó kiểm tra thấy phù hợp giữa Public Key và Private Key thì cho kết nối.
Cấu hình Public key cho SSH Server
Mở file config của SSH Service ra (/etc/ssh/sshd_config trên Windows C:\ProgramData\sshd_config - xem phần Câu hình dịch vụ SSH Server ), hãy đảm bảo nó có dòng cấu hình:
PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keysTrong đó .ssh/authorized_keys cho biết, tìm Public key tại file .ssh/authorized_keys của User. Có nghĩa là Public key sẽ phải có cho từng User kết nối, và nó lưu dưới thư mục của User.
Ví dụ, nếu user đăng nhập có tên là abc thì Public key phải lưu ở /home/abc/.ssh/authorized_keys (Linux) hay tại C:\Users\abc\.ssh\authorized_keys đối với Windows. Biết được đường dẫn như vậy, bạn cần copy file id_rsa.pub (chứa Public key) sinh ra ở trên vào đúng đường dẫn này (đổi tên id_rsa.pub thành authorized_keys). Hoặc tạo file authorized_keys rồi paste nội dung Public key vào.
Ví dụ, Linux Server có IP 192.168.1.52, user để là xuanthulab, thì file lưu Public Key phải để tại là ở /home/xuanthulab/.ssh/authorized_keys
Lưu ý - Lỗi hay gặp không kết nối được SSH KEY: thường là lưu file public key ở Server ở các thư mục không được chmod phù hợp. Nếu user có tên là abc, thì chmod phù hợp là:
/home/abc 700 /home/abc/.ssh 700 /home/abc/.ssh/authorized_keys 600Cấu hình Private key cho SSH Client
Sau khi có SSH Server cho phép xác thực bằng SSH Key, thì ở Client phải sử dụng Private key, có được khi sinh ra cùng Public key ở trên.
Như phần File cấu hình config cho SSH Client , mở (tạo mới nếu chưa có) file config ra và thiết lập có xác thực SSH Key đến host tương ứng
Ví dụ, kết nối đến 192.168.1.52 thì dùng Private key lưu tại /Users/xuanthulab/.ssh/id_rsa, thì file config đó như sau:
Host 192.168.1.52 PreferredAuthentications publickey IdentityFile "/Users/xuanthulab/.ssh/id_rsa"Do public key ở 192.168.1.52 phù hợp với private key ở client (/Users/xuanthulab/.ssh/id_rsa), nên khi kết nối nó sẽ xác thực ngay bằng key mà không cần nhập password nữa
ssh xuanthulab@192.168.1.52Cũng lưu ý là Private key được chmod phù hợp (600)
Mục lục bài viết Cơ chế xác thực bằng SSH KeyTạo Private / Publich SSH KeyXác thực bằng Public/Private key ĐĂNG KÝ KÊNH, XEM CÁC VIDEO TRÊN XUANTHULAB Đăng ký nhận bài viết mớiTừ khóa » Cách Tạo Ssh Key
-
Hướng Dẫn Sử Dụng Và Tạo SSH Key đơn Giản Nhất - Vietnix
-
Hướng Dẫn Tạo SSH Key Trên Windows, Linux Và Cách Sử Dụng
-
Cách Tạo SSH Key Và Sử Dụng Nó Với Gitlab Và Github - Nguyên Ary
-
Hướng Dẫn Tạo Và Sử Dụng SSH Key | Cloud VPS
-
Hướng Dẫn Tạo Và Sử Dụng SSH Key Cho Người Mới
-
Hướng Dẫn Tạo Và Sử Dụng SSH KEY - Knowledgebase
-
Tạo SSH Key Trên Ubuntu/Linux | Bizfly Cloud Documentation
-
Hướng Dẫn Tạo SSH Key - Knowledge Base
-
Hướng Dẫn Tạo Và Sử Dụng SSH KEY - CLOUD VIỆT - CloudViet
-
Hướng Dẫn Tạo Và Sử Dụng SSH Key
-
Hướng Dẫn Sử Dụng SSH KEY - Blog
-
SSH Key Là Gì? - Nhân Hòa
-
[Share]- Hướng Dẫn Tạo SSH KEY Cho VPS. Bảo Mật An Toàn.
-
Hướng Dẫn Tạo SSH Key - Học VPS