Hello everyone, Bài này vncloud.vn sẽ giới thiệu các bạn cách Đăng nhập server dùng SSH Keys, không cần Password.
SSH Keys là một phương thức xác thực đăng nhập với máy chủ qua SSH bằng việc đối chiếu giữa một cặp keys, bao gồm một khóa riêng tư (private key) và khóa công khai (public key) tương ứng. SSH Keys sử dụng giao thức xác thực challenge-response mà trong đó một bên trình bày một câu hỏi – challenge và một bên khác phải cung cấp một câu trả lời hợp lệ – response để được chứng thực.
Thông thường, bạn đăng nhập VPS thông qua username root và password tự động sinh ra do nhà phát hành cung cấp. Bạn có thể mất quyền truy cập VPS nếu để lộ mật khẩu hay bị dò tìm mật khẩu qua Brute Force Attack. Do đó, việc sử dụng SSH Keys sẽ bảo mật hơn rất nhiều so với phương pháp đăng nhập dùng mật khẩu truyền thống.
Có thể hiểu, Private Key là chìa khóa còn Public Key là ổ khóa.
Nội dung bài viết
Contents
Bạn có thể tạo cặp Keys qua terminal trên VPS Linux bất kỳ với ssh-keygen
. Trong quá trình cài đặt, chương trình sẽ hỏi bạn nơi lưu keys và mật khẩu sử dụng private key (nếu có).
# ssh-keygen -t rsa -b 2048 Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): #nơi lưu key Created directory '/root/.ssh'. Enter passphrase (empty for no passphrase): #mật khẩu cho private key Enter same passphrase again: #xác nhận lại mật khẩu cho private key Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: 44:3e:dc:59:30:ed:f2:25:f8:71:42:e4:9c:d2:24:9a root@hocvps The key's randomart image is: +--[ RSA 2048]----+ | . +++ | | + + Xo. | | E ++= | | . .o.= o | | S + * | | o | | | | | | | +-----------------+
Keys được tạo theo thuật toán mã hóa RSA, độ dài 2048bit và lưu tại /root/.ssh/
. Trong đó, Private Key là id_rsa còn Public Key là id_rsa.pub, đều là OpenSSH Keys
Bạn cũng có thể chạy được lệnh ssh-keygen
trên macOS.
Lưu ý: khi được hỏi passphrase, nên nhấn phím Enter để trống, tránh phải nhập thêm mật khẩu một lần nữa khi sử dụng key. Và bạn nên sử dụng SSH Keys tạo bởi phương pháp này.
Hiện tại, hầu hết các các phần mềm SSH đều có công cụ tạo Keys. Để đảm bảo bảo mật, bạn cần tạo cặp Keys mã hóa bởi thuật toán RSA2 với độ dài ít nhất 2048bit.
Quá trình tạo bạn cũng có thể nhập mật khẩu sử dụng Passphrase cũng như note về mục đích sử dụng Key Comment.
Tạo SSH Keys bằng PuTTyGen: lựa chọn SSH-2 RSA và 2048 như hình rồi ấn Generate đồng thời rê chuột xung quanh khung trắng để khởi tạo các chuỗi ngẫu nhiên. Nếu bạn đã có Private Key thì chỉ cần nhấn Load để tạo Public Key tương ứng(dùng khi convert Private Key dạng OpenSSH sang).
Sau khi tạo xong, màn hình hiển thị Public Key. Bạn có thể thiết lập Passphrase và Key Comment. Bạn nhấn Save private key để lưu lại.
Tạo SSH Keys bằng Bitvise SSH Client:
Đối với server Linux, bạn cần lưu thông tin Public Key tại ~/.ssh/authorized_keys
để xác thực đăng nhập sử dụng SSH Keys.
# mkdir ~/.ssh/ # nano ~/.ssh/authorized_keys
Copy toàn bộ nội dung Public key (dạng ssh-rsa AAAA...
) chèn thêm phía cuối file. Nhấn Ctrl+O để lưu lại nội dung và Ctrl+X để thoát khỏi editor.
Bật chế độ đăng nhập bằng SSH Keys: kích hoạt (uncomment) các tham số sau trong SSH Config tại /etc/ssh/sshd_config
Sau đó, khởi động lại SSH Service
# service sshd restart
Để sử dụng SSH Keys truy cập VPS, các bạn chỉ cần login thông qua các phần mềm SSH như PuTTy, Bitvise, ZOC và lựa chọn file Private Key đã tạo khi trước.
Lưu ý: Thường xuyên đăng nhập bằng SSH Client nào thì dùng chính phần mềm ý tạo SSH Keys.
_ Đối với PuTTy
Nếu sử dụng OpenSSH Keys (keys tạo bởi lệnh trong Linux/MacOS,…), bạn cần dùng PuTTygen để convert Private Key sang chuẩn đăng nhập với PuTTy.
Nếu passphrase được thiết lập, phần mềm sẽ yêu cầu bạn nhập trong quá trình đăng nhập. Nếu không, bạn sẽ được truy cập thẳng vào server.
Để gia tăng bảo mật, bạn nên thay đổi port truy cập SSH mặc định (22) và theo dõi truy cập SSH với Fail2ban.
Bên cạnh đó, cũng nên vô hiệu hóa đăng nhập sử dụng mật khẩu bằng cách chỉnh sửa tham số sau trong /etc/ssh/sshd_config
:
PasswordAuthentication no
Sau đó, khởi động lại SSH Service
# service sshd restart
Qua bài viết này, hi vọng các bạn đã hiểu được SSH Keys là gì, cách thức sử dụng cũng như tầm quan trọng của nó. Các bạn cũng nên bỏ hẳn cách thức đăng nhập bằng mật khẩu truyền thống, tránh bị lộ/dò mật khẩu.
Chúc bạn sử dụng VPS hiệu quả và an toàn.
Nguồn tham khảo : hocvps.com