NỘI DUNG

Hosting tốc độ cao Vietnix - tốc độ tải trang trung bình dưới 1 giây
VPS siêu tốc Vietnix - trải nghiệm mượt mà, ổn định
10/03/2025
Lượt xem

Hướng dẫn cách thiết lập khóa SSH trên CentOS 7

10/03/2025
15 phút đọc
Lượt xem

Đánh giá

5/5 - (106 bình chọn)

SSH (Secure Shell) là giao thức quan trọng giúp quản trị và kết nối an toàn với máy chủ từ xa. Việc sử dụng khóa SSH thay vì mật khẩu sẽ giúp tăng cường bảo mật và giảm nguy cơ bị tấn công. Trong bài viết này, mình sẽ hướng dẫn bạn cách thiết lập khóa SSH trên CentOS 7, giúp bạn đăng nhập vào máy chủ dễ dàng và an toàn hơn.

Những điểm chính

  •  Bước 1: Tạo cặp khóa SSH trên máy khách: Biết cách tạo khóa SSH an toàn và hiểu cách lưu trữ và bảo mật khóa bí mật.
  • Bước 2: Sao chép khóa công khai đến máy chủ CentOS: Nắm được 3 cách để sao chép khóa công khai vào máy chủ tùy theo điều kiện sử dụng, đảm bảo khóa công khai được cài đặt đúng trên máy chủ.
  • Bước 3: Xác thực máy chủ CentOS bằng khóa SSH: Biết cách đăng nhập vào máy chủ CentOS bằng khóa SSH và cách xử lý các thông báo xác thực lần đầu.
  • Bước 4: Vô hiệu hóa xác thực mật khẩu trên máy chủ: Nắm rõ cách vô hiệu hóa xác thực mật khẩu trong file cấu hình SSH nhằm tăng cường bảo mật hệ thống.
  • Giới thiệu Vietnix: Tìm hiểu về nhà cung cấp dịch vụ VPS chất lượng cao, tốc độ nhanh, ổn định, hỗ trợ nhiều hệ điều hành (CentOS, Ubuntu, Debian,…) và hỗ trợ kỹ thuật 24/7.

Bước 1 – Tạo cặp khóa RSA để thiết lập khóa SSH trên CentOS 7

Đầu tiên, bạn cần tạo một cặp SSH key trên máy khách (thông thường là máy tính của bạn):

ssh-keygen

Lệnh ssh-keygen mặc định sẽ tạo SSH key RSA 2048 bit đủ an toàn để sử dụng trong hầu hết trường hợp. Bạn cũng có thể chọn cờ -b 4096 để tạo một khóa 4096 bit.

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

Output
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 con .ssh/ trong thư mục home của bạn. Bạn có thể chỉ định một đường dẫn khác để lưu cặp khóa.

Nếu đã tạo một cặp khóa SSH trước đó thì bạn có thể nhận được thông báo sau:

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

Nếu chọn ghi đè khóa trên đĩa thì bạn sẽ không thể xác thực bằng khóa trước đó nữa. Lưu ý rằng khi chọn yes thì khóa cũ sẽ bị vô hiệu hóa nên bạn cần cẩn thận. Sau đó, bạn sẽ thấy thông báo:

Output
Enter passphrase (empty for no passphrase):

Ở đây, bạn có thể tùy chọn nhập mật khẩu an toàn. Đây là lớp bảo mật bổ sung để ngăn chặn đăng nhập của người dùng trái phép.

Sau đó, bạn sẽ thấy output sau đây:

Output
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=++.            |
+-----------------+

Như vậy, bạn đã có một cặp khóa công khai và bí mật sử dụng cho quá trình xác thực. Bước tiếp theo, bạn sẽ tiến hành đặt khóa công khai vào máy chủ để có thể xác thực đăng nhập dựa trên khóa SSH.

Bước 2 – Sao chép khóa công khai đến máy chủ CentOS

Cách nhanh nhất để sao chép khóa công khai đến máy chủ CentOS là sử dụng tiện ích ssh-copy-id. Phương pháp này được khuyến khích vì cách dùng rất đơn giản. Nếu không có ssh-copy-id trên máy, bạn có thể sử dụng một trong hai phương pháp thay thế: Sao chép qua SSH dựa trên mật khẩu hoặc sao chép thủ công.

Sao chép khóa công khai bằng cách sử dụng ssh-copy-id

Công cụ ssh-copy-id đã được cài mặc định trong nhiều hệ điều hành. Để thực hiện phương pháp này, bạn phải đã có quyền truy cập SSH dựa trên mật khẩu vào máy chủ.

Bạn chỉ cần chỉ định máy chủ muốn kết nối từ xa và tài khoản người dùng có quyền truy cập SSH dựa trên mật khẩu. Khóa SSH công khai của bạn sẽ được sao chép đến tài khoản này.

Bạn gõ cú pháp như sau:

ssh-copy-id username@remote_host

Sau đó, bạn có thể nhìn thấy thông báo sau đây:

Output
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

Thông báo này có nghĩa là máy tính của bạn không nhận ra máy chủ từ xa. Điều này xảy ra khi bạn kết nối với máy chủ mới lần đầu tiên. Nhập yes và nhấn ENTER để tiếp tục.

Tiếp theo, tiện ích sẽ quét tài khoản của bạn để tìm file khóa công khai id_rsa.pub mà bạn đã tạo trước đó. Khi tìm thấy khóa, tiện ích 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:

Output
/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
password của username@203.0.113.1:

Hãy nhập mật khẩu và nhấn ENTER. Mật khẩu sẽ không hiển thị khi nhập nhằm mục đích bảo mật. Tiện ích sẽ kết nối đến tài khoản trên máy chủ từ xa bằng mật khẩu mà bạn đã cung cấp. Sau đó, nội dung của khóa ~/.ssh/id_rsa.pub sẽ được sao chép vào file authorized_keys trong thư mục ~/.ssh của tài khoản từ xa.

Bạn sẽ thấy output sau đây:

Output
Number of key(s) added: 1
Now try logging into the machine, with:   "ssh 'username@203.0.113.1'"
and check to make sure that only the key(s) you wanted were added.

Khóa 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 bước 3.

Sao chép khóa công khai bằng SSH

Trường hợp bạn không có ssh-copy-id nhưng có quyền truy cập vào một tài khoản trên máy chủ qua SSH thì có thể tải lên khóa bằng phương pháp SSH thông thường. Cụ thể, bạn sử dụng lệnh cat để đọc nội dung của khóa SSH công khai trên máy tính, sau đó chuyển những nội dung này qua kết nối SSH đến máy chủ từ xa.

Ngoài ra, bạn cần đảm bảo rằng thư mục ~/.ssh tồn tại và có quyền truy cập dưới tài khoản bạn đang sử dụng. Sau đó, bạn có thể xuất nội dung đã chuyển tới thành file authorized_keys trong thư mục này. Sử dụng ký hiệu chuyển hướng >> để thêm nội dung mới mà không ghi đè lên nội dung cũ. Cách này cho phép bạn thêm khóa mới mà không phá hủy các khóa đã được thêm trước đó.

Bạn hãy gõ câu lệnh 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"

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

Output
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

Thông báo này cho thấy máy tính của bạn không nhận ra máy chủ từ xa nếu là lần kết nối đầu tiên. Gõ yes và nhấn ENTER để tiếp tục.

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

Output
username@203.0.113.1's password:

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

Sao chép khóa công khai theo cách thủ công

Nếu không có quyền truy cập vào máy chủ bằng SSH thì bạn sẽ phải hoàn thành bằng cách thủ công bằng cách thêm nội dung của file id_rsa.pub vào cuối file ~/.ssh/authorized_keys trên máy từ xa.

Thực hiện lệnh để hiển thị nội dung của khóa id_rsa.pub:

cat ~/.ssh/id_rsa.pub

Bạn sẽ thấy nội dung của khóa trông giống như sau:

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

Tiếp theo, bạn cần truy cập tài khoản trên máy chủ từ xa. Sau khi bạn truy cập tài khoản của mình trên máy chủ từ xa, hãy đảm bảo rằng thư mục ~/.ssh đã tồn tại. Nếu thư mục chưa tồn tại, bạn hãy gõ lệnh dưới đây:

mkdir -p ~/.ssh

Bây giờ, bạn có thể tạo hoặc chỉnh sửa file authorized_keys. Bạn có thể thêm nội dung của file id_rsa.pub vào cuối file authorized_keys. Tạo file bằng lệnh sau:

echo public_key_string >> ~/.ssh/authorized_keys

Trong lệnh trên, thay thế public_key_string bằng output từ lệnh cat ~/.ssh/id_rsa.pub. Output phải bắt đầu bằng ssh-rsa AAAA....

Cuối cùng, đảm bảo rằng thư mục ~/.ssh và file authorized_keys được thiết lập các quyền thích hợp:

chmod -R go= ~/.ssh

Bước này sẽ gỡ bỏ tất cả quyền “group” và “other” cho thư mục ~/.ssh/ bằng cách đệ quy.

Nếu bạn sử dụng tài khoản root để cài đặt các khóa cho tài khoản người dùng thì cần đảm bảo thư mục ~/.ssh thuộc về người dùng và không thuộc về root. Trong ví dụ dưới đây, người dùng có tên là sammy nhưng bạn nên thay thế bằng tên người dùng của bạn.

chown -R sammy:sammy ~/.ssh

Bây giờ, bạn có thể thử xác thực không cần mật khẩu với máy chủ CentOS của mình.

Bước 3 – Xác thực máy chủ CentOS bằng cách sử dụng khóa SSH

Nếu đã hoàn thành các bước trên, bạn nên có thể đăng nhập SSH vào server Linux mà không cần mật khẩu của tài khoản từ xa.

Quy trình cơ bản là như nhau, bắt đầu với lệnh:

ssh username@remote_host

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

Output
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

Nhập yes và nhấn ENTER để tiếp tục.

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

Ở bước tiếp theo, hãy cùng tìm hiểu cách bảo mật hệ thống tốt hơn bằng cách vô hiệu hóa xác thực 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ủ 

Nếu có thể đăng nhập vào tài khoản của mình bằng SSH mà không cần mật khẩu thì bạn đã cấu hình xác thực dựa trên khóa SSH thành công. Tuy nhiên, cơ chế xác thực dựa trên mật khẩu của bạn vẫn hoạt động. Điều đó có nghĩa là máy chủ của bạn có thể bị tiếp cận bởi các cuộc tấn công bằng mật khẩu.

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

Sau khi xác nhận rằng tài khoản từ xa có quyền quản trị, bạn hãy đăng nhập vào máy chủ từ xa với khóa SSH hoặc là với tài khoản có quyền sudo. Sau đó, mở file cấu hình của dịch vụ SSH:

sudo vi /etc/ssh/sshd_config

Trong file, bạn hãy tìm chỉ thị PasswordAuthentication. Có thể chỉ thị đã bị chú thích. Nhấn i để chèn văn bản và sau đó hủy chú thích bằng cách xóa dấu # phía trước chỉ thị PasswordAuthentication. Khi bạn tìm thấy chỉ thị, hãy thiết lập giá trị là no. Khi làm vậy, khả năng đăng nhập qua SSH bằng mật khẩu sẽ bị vô hiệu hóa:

...

PasswordAuthentication no

...

Khi hoàn thành việc thay đổi, nhấn ESC và sau đó gõ :wq để lưu các thay đổi vào file và thoát. Để thực hiện các thay đổi này, bạn cần khởi động lại dịch vụ sshd:

sudo systemctl restart sshd.service

Hãy mở một cửa sổ terminal mới và kiểm tra xem dịch vụ SSH đang hoạt động đúng trước khi đóng phiên này:

ssh username@remote_host

Sau khi xác minh dịch vụ SSH, bạn có thể đóng tất cả các phiên máy chủ hiện tại một cách an toàn.

Lúc này, dịch vụ SSH trên máy chủ CentOS của bạn chỉ phản hồi SSH keys. Khả năng đăng nhập bằng mật khẩu đã được vô hiệu hóa thành công. Ngoài ra, bạn cũng có thể tham khảo thêm về việc sử dụng và cài đặt Eclipse Theia Cloud IDE Platform trên CentOS 7, điều này sẽ giúp cho bạn có thể dễ dàng truy cập và làm việc trên các dự án phát triển đa nền tảng, từ đó tăng hiệu suất và tiết kiệm thời gian

Vietnix – Nhà cung cáp VPS đáng tin cậy cho mọi doanh nghiệp

Nếu bạn đang tìm kiếm một giải pháp VPS giá rẻ, tốc độ cao để triển khai dự án hoặc vận hành doanh nghiệp, Vietnix là lựa chọn đáng tin cậy với hơn 12 năm kinh nghiệm trong lĩnh vực cung cấp dịch vụ máy chủ. Vietnix hỗ trợ nhiều hệ điều hành như CentOS, Ubuntu, Debian,… giúp bạn dễ dàng lựa chọn môi trường phù hợp cho quá trình thiết lập khóa SSH trên CentOS 7.

Hệ thống VPS tại Vietnix được tối ưu để đảm bảo hiệu suất vượt trội, độ ổn định cao và bảo mật tốt nhất. Giao diện quản trị thân thiện, giúp bạn quản lý VPS nhanh chóng, dễ dàng. Đặc biệt, Vietnix cam kết hỗ trợ kỹ thuật chuyên nghiệp 24/7, sẵn sàng giải quyết mọi vấn đề phát sinh.

Liên hệ ngay với Vietnix để được tư vấn và trải nghiệm dịch vụ VPS chất lượng cao với chi phí hợp lý!

Thông tin liên hệ:

  • Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh
  • Hotline: 1800 1093
  • Email: sales@vietnix.com.vn
  • Website: https://vietnix.vn/ 

Việc thiết lập khóa SSH trên CentOS 7 không chỉ đơn giản mà còn mang lại hiệu quả bảo mật đáng kể cho máy chủ. Bằng cách loại bỏ việc phụ thuộc vào mật khẩu, bạn đã giảm thiểu nguy cơ bị tấn công brute-force và các hình thức truy cập trái phép khác. Hy vọng bài viết này đã cung cấp cho bạn hướng dẫn đầy đủ và dễ hiểu. Hãy áp dụng ngay để tăng cường bảo mật cho máy chủ CentOS 7 của bạn và trải nghiệm sự tiện lợi của việc đăng nhập bằng khóa SSH.

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Banner group
Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

Icon tab

MAXSPEED HOSTING

TĂNG TỐC WEBSITE TOÀN DIỆN

CÔNG NGHỆ ĐỘC QUYỀN

Vector

PHẦN CỨNG MẠNH MẼ

Vector

HỖ TRỢ 24/7

Vector
ĐĂNG KÝ NGAYGroup icon
khuyến mãi cuối tháng 3
Nhanh tay, số lượng có hạn!
17/03/2025 - 31/03/2025
Pattern

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

Icon
ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1
Icon
XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG