Cách đăng nhập server không cần Password với SSH Keys

Ngày 27/06/2019 đăng bởi adminmcvn

Đăng nhập server không cần Password với SSH Keys là phương thức chứng thực người dùng truy cập bằng cách đối chiếu giữa một key cá nhân (Private Key) và key công khai(Public Key). SSH Key là một cách đăng nhập an toàn, nó được được dùng thay thế cho mật khẩu để hạn chế các vấn đề về bảo mật có thể gây mất quyền kiểm soát VPS/Server. Việc đăng nhập server không cần Password với 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.

>>> Hướng dẫn Reset mật khẩu truy cập VPS Vultr

Để đăng nhập server không cần Password với SSH Keys chúng ta thực hiện như sau:

Tạo SSH Keys

Với Linux (và macOS)

Bạn có thể tạo cặp Keys qua terminal trên VPS Linux bất kỳ với ssh-keygen.

# 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.

Với Windows

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.

  • PuTTy với ứng dụng PuTTygen. Ngoài ra, bạn có thể dùng (PuTTygen Portable).
  • ZOC với menu File/Create SSh Key Files.
  • Bitvise SSH với Client key manager/Generate New.

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 ZOC Client:


Tạo SSH Keys bằng Bitvise SSH Client:

Thêm Public Key vào VPS

Đố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

  • PubkeyAuthentication yes
  • AuthorizedKeysFile .ssh/authorized_keys

Sau đó, khởi động lại SSH Service

# service sshd restart

Sử dụng SSH Keys

Để 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.

_ Đối với ZOC


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.

Cấu hình sử dụng SSH Keys

Để 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

Đăng nhập server không cần Password với SSH Keys giúp chúng ta đăng nhập vào VPS mà không cần thông qua phương thức truyền thống bằng mật khẩu. Đăng nhập server sẽ loại bỏ mã độc hoặc bạn có vô tình làm lộ mật khẩu khi chúng ta thuê server của một đơn vị cung cấp dịch vụ. Mong rằng mọi người có thể thực hiện thành công, hãy liên hệ với chúng tôi nếu gặp phải vấn đề.

Hotline tư vấn miễn phí