Thông thường khi bạn tạo VPS bạn sẽ nhận được mật khẩu cho một user ‘root’, một user có quyền lớn nhất trên nền tảng Linux.
Bạn sẽ sử dụng tài khoản này để kết nối với máy chủ qua giao giao thức SSH.
Cách này không có tính bảo mật cao. Hacker có thể sử dụng tấn công BruteForce để dò ra mật khẩu của bạn.
Do vậy bạn nên chuyển sang dùng SSH Key để kết nối với VPS.
Bài viết này mình sẽ hướng dẫn bạn từng bước kết nối SSH dùng SSH key.
Cách làm việc của SSH Key
Cách kết nối này dựa trên cặp key: public key và private key.
Public key bạn đặt trên máy chủ. Còn private key bạn dùng khi từ client kết nối với máy chủ.
Kết nối thành công chỉ khi private key trùng với public key.
Cách làm việc cơ bản là như vậy. Bạn có thể hình dung public key là ổ khóa. Private là chìa khóa.
Chìa khóa khớp với ổ khóa nghĩa là bạn có thể kết nối với server.
Thực tế thành phần của SSH key bao gồm:
- Public key: bạn sẽ copy xâu ký tự này vào file ~/.ssh/authorized_keys trên server bạn thuê
- Private Key: bạn sẽ lưu file chứa private key vào máy tính local của bạn. Sau đó bạn cấu hình MobaXTerm để kết nối như hướng dẫn bên dưới
- Keyphare: Mật khẩu để mở private, mỗi khi đăng nhập vào server sẽ hỏi thêm cái này.
Cách tạo SSH key
Ở đây mình chỉ hướng dẫn với Windows. Nếu máy tính bạn dùng hệ điều hành khác thì Google thêm.
Đầu tiên bạn cần tải về tool PuTTY-Gen.
Sau khi chạy về file exe bạn sẽ nhìn thấy cửa sổ làm việc như sau:
Click vào nút Generate để bắt đầu tạo cặp key.
Nhớ khi chương trình đang sinh key, bạn cần rê chuột vòng màn hình cho đến khi nó sinh key thành công.
Sau khi tạo xong, bạn sẽ nhìn thấy màn hình như sau:
Bây giờ bạn sẽ hãy điền vào keyphrase:
Tiếp theo, click vào nút Save private key. Chọn một nơi an toàn để lưu file chứa private key.
Public key bạn cũng không cần lưu lại làm gì. Bạn có thể sử dụng chức năng load để tải file private key đã lưu. Từ đó bạn có thể lấy lại public key.
Cách đưa public key lên server
Đầu tiên bạn sử dụng MobaXTerm kết nối với server (sử dụng tài khoản root). Nếu bạn đã tạo user khác thì đăng nhập với user bạn cần kết nối qua SSH Key.
Tiếp theo, bạn chạy nhóm lệnh bên dưới.
Đầu tiên, bạn tạo thư mục .ssh ở trong thư mục home của user hiện tại
1 |
mkdir ~/.ssh |
Mở file authorized_keys sử dụng trình biên tập nano. Nếu chưa có file này nano sẽ tạo file mới và mở cho bạn biên tập
1 |
nano ~/.ssh/authorized_keys |
Copy và paste public key. Click Ctrl+O rồi Enter để lưu lại. Click Ctrl+X để thoát nano
Chạy lệnh sau để giới hạn quyền truy cập file:
1 |
chmod 600 ~/.ssh/authorized_keys |
Lưu ý: Để kết nối SSH Key hoạt động, SELinux cần phải tắt. Bạn kiểm lại server của bạn đã tắt chưa bằng cách mở file /etc/selinux/config, nếu SELINUX đã tắt thì sẽ có dòng SELINUX=disabled. Nếu chưa thì bạn thay đổi như vậy rồi gõ lệnh reboot để khởi động lại server.
Ok. Chúng ta đã hoàn thành xong đưa public key lên server.
Vẫn trong MobaXterm, bạn sửa lại session bạn dùng kết nối với server. Ở phần Advanced SSH Settings, bạn chọn Use private key rồi duyệt đến file private key bạn đã lưu. Xong rồi thì click OK.
Bây giờ bạn thử mở một tab kết nối mới. Nó sẽ hỏi keyphrase là gì nếu bạn thiết lập keyphrase. Bạn paste cái keyphrase bạn thiết lập ở trên.
Nếu mọi thứ làm việc, bạn sẽ kết nối thành công với server.
Tắt chức năng kết nối sử dụng mật khẩu.
Sau khi kết nối bằng SSH Key thành công, bạn cần tắt chức năng kết nối xác thực mật khẩu đi.
Kết nối với server bằng SSH Key. Sau đó mở file /etc/ssh/sshd_config.
Thay đổi dòng PasswordAuthentication từ yes thành no.
Thay đổi dòng UsePAM từ yes thành no.
Thay đổi xong thì bạn chạy lệnh service sshd restart để cập nhật cấu hình mới
Với bài viết này bạn đã biết cách kết nối SSH sử dụng SSH Key.
Bạn nhớ làm bước này sau khi tạo xong VPS nhé.