Hướng Dẫn Thiết Lập SSH Keys Trên Rocky Linux 8 Đơn Giản, Bảo Mật

Cách thiết lập SSH Keys trên Rocky Linux 8

SSH (Secure Shell) là một giao thức mã hóa giúp quản trị viên và người dùng giao tiếp an toàn với các máy chủ từ xa. Khi làm việc với một máy chủ Rocky Linux, bạn sẽ thường xuyên kết nối với nó thông qua SSH trong môi trường terminal. Một trong những phương pháp an toàn và hiệu quả để đăng nhập vào máy chủ qua SSH là sử dụng SSH Keys.

Bạn đang tìm cách tăng cường bảo mật cho server? Thiết lập SSH Keys trên Rocky Linux 8 là giải pháp tối ưu. Nếu bạn cần một nền tảng mạnh mẽ với chi phí thấp, hãy khám phá các gói VPS giá rẻ tại DataOnline để đảm bảo hiệu suất và an toàn cho hệ thống của bạn.

Tiếp theo, chúng ta sẽ tìm hiểu cách thiết lập SSH keys cho máy chủ Rocky Linux 8. SSH keys không chỉ giúp việc đăng nhập trở nên đơn giản mà còn đảm bảo tính bảo mật cao hơn so với việc sử dụng mật khẩu. Đây là phương pháp đăng nhập được khuyến nghị cho tất cả người dùng khi làm việc với máy chủ từ xa.

Bước 1 – Tạo cặp khóa RSA

Bước đầu tiên là tạo một cặp khóa trên máy khách (thường là máy tính cá nhân của bạn):

ssh-keygen

Theo mặc định, lệnh ssh-keygen sẽ tạo một cặp khóa RSA 2048-bit, đủ an toàn cho hầu hết các trường hợp sử dụng (bạn có thể truyền thêm tham số -b 4096 để tạo khóa 4096-bit lớn hơn).

Sau khi nhập lệnh, bạn sẽ thấy thông báo sau:

Generating public/private rsa key pair.
Enter file in which to save the key (/your_home/.ssh/id_rsa):

Nhấn ENTER để lưu cặp khóa vào thư mục .ssh/ trong thư mục home của bạn, hoặc chỉ định một đường dẫn khác.

Nếu bạn đã tạo cặp khóa SSH trước đó, bạn có thể thấy thông báo sau:

/home/your_home/.ssh/id_rsa already exists.
Overwrite (y/n)?

Nếu bạn chọn ghi đè khóa trên ổ đĩa, bạn sẽ không thể xác thực bằng khóa trước đó nữa. Hãy cẩn thận khi chọn yes, vì đây là quá trình hủy hoại không thể phục hồi.

Sau đó, bạn sẽ thấy thông báo:

Enter passphrase (empty for no passphrase):

Tại đây, bạn có thể nhập passphrase bảo mật (không bắt buộc), nhưng rất được khuyến khích. Passphrase thêm một lớp bảo mật bổ sung cho khóa của bạn, nhằm ngăn chặn người dùng không được phép đăng nhập.

Bạn sau đó sẽ thấy thông báo:

Your identification has been saved in /your_home/.ssh/id_rsa.
Your public key has been saved in /your_home/.ssh/id_rsa.pub.
The key fingerprint is:
a9:49:2e:2a:5e:33:3e:a9:de:4e:77:11:58:b6:90:26 username@remote_host
The key's randomart image is:
+--[ RSA 2048]----+
|     ..o         |
|   E o= .        |
|    o. o         |
|        ..       |
|      ..S        |
|     o o.        |
|   =o.+.         |
|. =++..          |
|o=++.            |
+-----------------+

Bây giờ, bạn đã có Public Key và Private Key để xác thực. Bước tiếp theo là đưa Public Key lên máy chủ của bạn để sử dụng xác thực dựa trên ssh keys khi đăng nhập.

Bước 2 – Sao chép public key lên máy chủ rocky linux của bạn

Cách nhanh nhất để sao chép Public Key của bạn lên máy chủ rocky linux là sử dụng tiện ích có tên ssh-copy-id. Phương pháp này được khuyến nghị cao nếu có sẵn. Nếu trên máy khách của bạn không có ssh-copy-id, bạn có thể sử dụng một trong hai phương pháp thay thế sau (sao chép qua SSH sử dụng mật khẩu, hoặc sao chép thủ công khóa).

Sao chép public key của bạn bằng ssh-copy-id

Tiện ích ssh-copy-id được tích hợp sẵn trong nhiều hệ điều hành, vì vậy có thể bạn đã có nó trên hệ thống của mình. Để phương pháp này hoạt động, bạn phải có quyền truy cập SSH qua mật khẩu vào máy chủ của mình.

Để sử dụng tiện ích này, bạn chỉ cần chỉ định máy chủ từ xa mà bạn muốn kết nối và tài khoản người dùng mà bạn có quyền truy cập SSH qua mật khẩu. Đây là tài khoản mà Public SSH key của bạn sẽ được sao chép:

ssh-copy-id username@remote_host

Bạn có thể thấy thông báo sau:

The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes

Điều này có nghĩa là máy tính của bạn chưa nhận dạng được máy chủ từ xa. Điều này sẽ xảy ra lần đầu tiên bạn kết nối tới một máy chủ mới. Gõ yes và nhấn ENTER để tiếp tục.

Tiếp theo, tiện ích sẽ quét tài khoản cục bộ của bạn để tìm khóa id_rsa.pub mà chúng ta đã tạo trước đó. Khi tìm thấy, nó sẽ yêu cầu bạn nhập mật khẩu của tài khoản người dùng từ xa:

/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
username@203.0.113.1's password:

Nhập mật khẩu (ký tự bạn gõ sẽ không hiển thị vì lý do bảo mật) và nhấn ENTER. Tiện ích sẽ kết nối đến tài khoản trên máy chủ từ xa sử dụng mật khẩu bạn cung cấp. Sau đó, nó sẽ sao chép nội dung của khóa ~/.ssh/id_rsa.pub vào tệp ~/.ssh/authorized_keys của tài khoản từ xa.

Bạn sẽ thấy thông báo sau:

Output Number of key(s) added: 1

Bây giờ, hãy thử đăng nhập vào máy bằng lệnh:

ssh 'username@203.0.113.1'

và kiểm tra để đảm bảo rằng chỉ có các Key bạn muốn được thêm.

Tại thời điểm này, id_rsa.pub của bạn đã được tải lên tài khoản từ xa. Bạn có thể tiếp tục đến Bước 3.

Sao chép Public Key sử dụng SSH

Nếu bạn không có ssh-copy-id, nhưng có quyền truy cập SSH qua mật khẩu vào một tài khoản trên máy chủ, bạn có thể tải khóa của mình lên bằng phương pháp SSH thông thường.

Chúng ta có thể làm điều này bằng cách sử dụng lệnh cat để đọc nội dung của Public SSH key trên máy cục bộ và truyền nội dung đó qua kết nối SSH đến máy chủ từ xa.

Ở phía bên kia, hãy đảm bảo rằng thư mục ~/.ssh tồn tại và có quyền truy cập chính xác đối với tài khoản đang sử dụng.

Sau đó, chúng ta sẽ đưa nội dung được truyền vào một tệp có tên authorized_keys trong thư mục này. Chúng ta sử dụng ký hiệu chuyển hướng >> để nối nội dung thay vì ghi đè, cho phép thêm Key mà không làm mất các Key đã có.

Lệnh đầy đủ trông như sau:

cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys

Bạn có thể thấy thông báo sau:

The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes

Điều này có nghĩa là máy tính của bạn chưa nhận dạng được máy chủ từ xa. Lần đầu tiên kết nối tới một máy chủ mới, gõ yes và nhấn ENTER để tiếp tục.

Sau đó, bạn sẽ được yêu cầu nhập mật khẩu của tài khoản người dùng từ xa:

username@203.0.113.1's password:

Sau khi nhập mật khẩu, nội dung của id_rsa.pub sẽ được sao chép vào cuối tệp authorized_keys của tài khoản từ xa. Nếu thành công, hãy tiếp tục đến Bước 3.

Sao chép Public Key thủ công

Nếu bạn không có quyền truy cập SSH qua mật khẩu vào máy chủ, bạn sẽ phải thực hiện quá trình trên một cách thủ công.

Chúng ta sẽ thêm thủ công nội dung của tệp id_rsa.pub vào tệp ~/.ssh/authorized_keys trên máy chủ từ xa.

Để hiển thị nội dung của Public Key (id_rsa.pub), nhập lệnh sau trên máy cục bộ:

cat ~/.ssh/id_rsa.pub

Bạn sẽ thấy nội dung của Key, trông như sau:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZFl9HgH1JLknLLx44+tXfJ7mIrKNxOOwxIxvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q+bqgZ8SeeM8wzytsY+dVGcBxF6N4JS+zVk5eMcV385gG3Y6ON3EG112n6d+SMXY0OEBIcO6x+PnUSGHrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B+ZVIpSDfki9UVKzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G/12N0PPB5CnhHf7ovgy6nL1ikrygTKRFmNZISvAcywB9GVqNAVE+ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77+xiFxgI5QSZX3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1nUhLuJ0X/vh2xPff6SQ1BL/zkOhvJCACK6Vb15mDOeCSq54Cr7kvS46itMosi/uS66+PujOO+xt/2FWYepz6ZlN70bRly57Q06J+ZJoc9FfBCbCyYH7U/ASsmY095ywPsBo1XQ9PqhnN1/YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsdBIbXWhcrRf4G2fJLRcGUr9q8/lERo9oxRm5JFX6TCmj6kmiFqv+Ow9gI0x8GvaQ== sammy@host

Đăng nhập vào máy chủ từ xa của bạn bằng bất kỳ phương pháp nào có sẵn.

Khi đã truy cập được vào tài khoản trên máy chủ từ xa, hãy đảm bảo rằng thư mục ~/.ssh tồn tại. Lệnh sau sẽ tạo thư mục nếu cần, hoặc không làm gì nếu nó đã tồn tại:

mkdir -p ~/.ssh

Bây giờ, bạn có thể tạo hoặc chỉnh sửa tệp authorized_keys trong thư mục này. Bạn có thể thêm nội dung của tệp id_rsa.pub vào cuối tệp authorized_keys, tạo tệp nếu cần, bằng cách sử dụng lệnh:

echo public_key_string >> ~/.ssh/authorized_keys

Trong lệnh trên, hãy thay public_key_string bằng kết quả từ lệnh cat ~/.ssh/id_rsa.pub mà bạn đã thực hiện trên máy cục bộ. Nội dung này nên bắt đầu với ssh-rsa AAAA….

Cuối cùng, đảm bảo rằng thư mục ~/.ssh và tệp authorized_keys có quyền truy cập phù hợp:

chmod -R go= ~/.ssh

Lệnh này sẽ loại bỏ đệ quy tất cả các quyền “group” và “other” cho thư mục ~/.ssh/.

Nếu bạn sử dụng tài khoản root để thiết lập keys cho tài khoản người dùng, điều quan trọng là thư mục ~/.ssh phải thuộc về người dùng đó chứ không phải root:

chown -R sammy:sammy ~/.ssh

Trong hướng dẫn này, người dùng của chúng ta có tên là sammy nhưng bạn nên thay thế tên người dùng thích hợp vào lệnh trên.

Bây giờ, chúng ta có thể thử xác thực dựa trên key với máy chủ rocky linux của mình.

Bước 3 – Đăng nhập vào máy chủ Rocky Linux của bạn sử dụng SSH Keys

Nếu bạn đã hoàn thành thành công một trong những phương pháp trên, bây giờ bạn có thể đăng nhập vào máy chủ từ xa mà không cần mật khẩu của tài khoản đó.

Quá trình ban đầu giống như khi xác thực bằng mật khẩu:

ssh username@remote_host

Nếu đây là lần đầu tiên bạn kết nối tới máy chủ này (nếu bạn sử dụng phương pháp cuối cùng trên), bạn có thể thấy thông báo như sau:

The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes

Điều này có nghĩa là máy tính của bạn chưa nhận dạng được máy chủ từ xa. Gõ yes và nhấn ENTER để tiếp tục.

Nếu bạn không cung cấp passphrase khi tạo cặp khóa ở bước 1, bạn sẽ đăng nhập ngay lập tức. Nếu đã cung cấp passphrase, bạn sẽ được yêu cầu nhập nó ngay bây giờ. Sau khi xác thực, một phiên shell mới sẽ được mở cho bạn với tài khoản đã cấu hình trên máy chủ rocky linux.

Nếu xác thực dựa trên key thành công, hãy tiếp tục tìm hiểu cách tăng cường bảo mật hệ thống của bạn bằng cách vô hiệu hóa xác thực SSH qua mật khẩu.

Bước 4 – Vô hiệu hóa xác thực mật khẩu trên máy chủ của bạn

Nếu bạn đã đăng nhập thành công vào tài khoản bằng SSH mà không cần mật khẩu, bạn đã cấu hình thành công xác thực dựa trên ssh keys cho tài khoản của mình. Tuy nhiên, cơ chế xác thực bằng mật khẩu vẫn còn hoạt động, có nghĩa là máy chủ của bạn vẫn dễ bị tấn công brute-force.

Trước khi hoàn thành các bước trong phần này, hãy đảm bảo rằng bạn đã cấu hình xác thực dựa trên ssh keys cho tài khoản root trên máy chủ này, hoặc tốt hơn, cho một tài khoản không phải root có quyền sudo. Bước này sẽ khóa đăng nhập bằng mật khẩu, vì vậy việc đảm bảo rằng bạn vẫn có thể truy cập quyền quản trị là rất quan trọng.

Sau khi xác nhận rằng tài khoản từ xa của bạn có quyền quản trị, đăng nhập vào máy chủ từ xa bằng ssh keys, dù là với tài khoản root hay tài khoản có quyền sudo. Sau đó, mở tệp cấu hình của SSH daemon:

sudo vi /etc/ssh/sshd_config

Bên trong tệp, tìm chỉ thị có tên PasswordAuthentication. Chỉ thị này có thể bị chú thích bằng dấu #. Nhấn i để đưa vi vào chế độ chèn, sau đó bỏ chú thích dòng đó và đặt giá trị thành no. Điều này sẽ vô hiệu hóa khả năng đăng nhập qua SSH sử dụng mật khẩu.

Ví dụ, tệp /etc/ssh/sshd_config sẽ hiển thị như sau:

/etc/ssh/sshd_config

...
PasswordAuthentication no
...

Khi bạn hoàn tất thay đổi, nhấn ESC rồi nhập :wq để lưu các thay đổi và thoát. Để thực thi các thay đổi này, bạn cần khởi động lại dịch vụ sshd:

sudo systemctl restart sshd

Như một biện pháp phòng ngừa, mở một cửa sổ terminal mới và kiểm tra rằng dịch vụ SSH vẫn hoạt động bình thường trước khi đóng phiên hiện tại:

ssh username@remote_host

Sau khi bạn xác nhận rằng dịch vụ SSH vẫn hoạt động đúng, bạn có thể an toàn đóng tất cả các phiên làm việc hiện tại.

SSH daemon trên máy chủ rocky linux của bạn giờ chỉ phản hồi với ssh keys. Xác thực bằng mật khẩu đã được vô hiệu hóa thành công.

Kết luận

Giờ đây, bạn đã hoàn thành việc cấu hình xác thực SSH dựa trên SSH keys cho máy chủ của mình. Điều này cho phép bạn đăng nhập vào máy chủ mà không cần phải nhập mật khẩu, mang lại sự thuận tiện và bảo mật cao hơn.

Nếu bạn muốn tìm hiểu thêm về cách làm việc với SSH, hãy xem Hướng dẫn SSH Essentials của DataOnline.

Sau khi thiết lập SSH Keys, việc quản lý server sẽ trở nên an toàn hơn. Để trải nghiệm môi trường server ổn định, hãy cân nhắc thuê VPS từ DataOnline. Các gói VPS linh hoạt, dễ nâng cấp sẽ giúp bạn tối ưu hóa hiệu suất mà vẫn tiết kiệm chi phí.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *