SSH Key là gì? Hiểu đơn giản nó là 1 kiểu xác thực. Trên server có 1 chuỗi khóa, trên máy khách kết nối đến server có 1 chuỗi khóa, 2 chuỗi này khớp nhau là server cho phép kết nối. Bạn có thể sử dụng phương pháp này thay cho mật khẩu đăng nhập.
Có nhiều cách để tạo ra SSH Key nhưng hôm nay mình giới thiệu cách mình hay làm và rất nhanh là sử dụng công cụ ZOC Terminal, đây là công cụ kết nối SSH đến server giống Putty. Mình khoái sử dụng công cụ này hơn Putty do nó hỗ trợ nhiều chức năng, bảo mật hơn (có thể cài password khởi động) và nhất là sử dụng được Ctrl+C, Ctrl+V.
Đầu tiên là máy bạn phải cài ZOC Terminal và server Ubuntu phải cài sẵn dịch vụ SSH
Xem thêm: Phần mềm ZOC Terminal
Bước 1. Tạo SSH Key trên ZOC Terminal
Vào Tools > SSH Public / Private Key Generator…
Công cụ sẽ tạo cho bạn 2 file: 1 file public dùng cho server, 1 file private các bạn dùng cho máy remote
Theo mặc định, phần mềm sẽ tạo một cặp khóa RSA2 2048 bit là đã quá đủ cho các bạn sử dụng rồi. Bạn có thể tùy chọn mode khác và 4096 bit ở phần Key Length. Phần Comment có thể bỏ qua. Phần Passphrase các bạn nên nhập vì nó giống như lớp mật khẩu thứ 2, bảo vệ an toàn hơn. Private Key file là nơi lưu file private và public, ở đây mình chọn là D:\ZOCFiles\ssh\id_rsa_server. Cuối cùng ấn Create public / private key files…
Bước 2. Sao chép SSH Key lên server Ubuntu
Vào thư mục lưu file key D:\ZOCFiles\ssh\, bạn sẽ thấy trong đó có 2 file: id_rsa_server là file private và id_rsa_server.pub là file public.
Mở file id_rsa_server.pub bằng Notepad, copy đoạn mã trong đó. Kết nối đến server Ubuntu, sau đó mở file authorized_keys bằng lệnh
$ cd ~ $ sudo nano .ssh/authorized_keys
Paste đoạn mã vừa copy vào file này, sau đó ấn Ctrl + O để lưu và Ctrl + X để thoát. Sau đó thử sử dụng ZOC để kiểm tra xem đã kết nối thành công bằng SSH key chưa.
Vào ZOC chọn File > Quick Connection…
Ở cửa sổ hiện ra Nhập IP và port của máy chủ, điền Username, password bỏ trống và SSH Key thì chọn file id_rsa_server nhé. Ấn connect nếu kết nối thành công ta chuyển sang bước 3.
Bước 3. Tắt xác thực bằng mật khẩu SSH trên Ubuntu
Nếu bạn có thể đăng nhập vào account của bạn bằng SSH mà không cần password, bạn đã cấu hình thành công xác thực dựa trên SSH key (khóa-SSH) cho account của bạn. Tuy nhiên, cơ chế xác thực dựa trên password của bạn vẫn đang hoạt động, nghĩa là server vẫn bị tấn công brute-force.
Ta sẽ tắt nó đi bằng cách mở file sshd_config bằng lệnh
$ sudo nano /etc/ssh/sshd_config
Bên trong file này tìm dòng PasswordAuthentication
PasswordAuthentication chuyển thành --> #PasswordAuthentication
Khởi động lại dịch vụ sshd để thực hiện những thay đổi bằng lệnh
$ sudo systemctl restart ssh
Như vậy các bạn đã hoàn thành việc thay đổi cách đăng nhập bằng mật khẩu sang đăng nhập bằng SSH key. Bài viết sử dụng Ubuntu 20.4. Mong được các bạn đóng góp ý kiến để website ngày càng phát triển.