0
0
Lập trình
Harry Tran
Harry Tran106580903228332612117

Hướng Dẫn Xác Thực SSH Trên Linux: Đăng Nhập Không Cần Mật Khẩu

Đăng vào 2 tuần trước

• 4 phút đọc

Hướng Dẫn Xác Thực SSH Trên Linux

Khi làm việc với các máy chủ từ xa, cách phổ biến nhất để kết nối là thông qua SSH (Secure Shell). Nếu bạn đã từng quản lý các máy chủ Linux hoặc triển khai ứng dụng, có lẽ bạn đã sử dụng nó. Trong bài viết này, chúng ta sẽ tìm hiểu SSH là gì, cách sử dụng nó để đăng nhập và cuối cùng là cách thiết lập đăng nhập không cần mật khẩu trên nhiều máy chủ.

SSH Là Gì?

SSH (Secure Shell) là một giao thức cho phép chúng ta kết nối an toàn đến một máy khác qua mạng không an toàn. Nó được sử dụng rộng rãi bởi các nhà phát triển, quản trị hệ thống và kỹ sư DevOps để:

  • Đăng nhập vào các máy chủ từ xa
  • Chạy các lệnh
  • Chuyển file
  • Quản lý hệ thống một cách an toàn

Khác với các phương pháp cũ như Telnet, SSH mã hóa toàn bộ thông tin liên lạc. Điều này có nghĩa là thông tin xác thực và dữ liệu của chúng ta được bảo vệ khỏi việc nghe lén.

Cách Đăng Nhập Qua SSH

Cú pháp cơ bản để đăng nhập SSH là:

Copy
ssh username@hostname
  • username → tài khoản người dùng trên máy chủ từ xa
  • hostname → địa chỉ IP hoặc tên miền của máy chủ

Ví Dụ

Nếu chúng ta có một máy chủ tại 172.16.238.10 với người dùng là tony:

Copy
ssh tony@172.16.238.10

Bạn sẽ được yêu cầu nhập mật khẩu cho người dùng đó. Khi xác thực thành công, bạn sẽ nhận được một shell trên máy tính từ xa.

Vấn Đề Với Mật Khẩu

Nhập mật khẩu mỗi khi đăng nhập nhanh chóng trở nên phiền phức, đặc biệt khi chúng ta cần đăng nhập vào nhiều máy chủ hoặc chạy các script tự động. Mật khẩu cũng tiềm ẩn nhiều rủi ro bảo mật nếu chúng yếu hoặc được tái sử dụng.

Đây là lúc khóa SSH phát huy tác dụng.

Đăng Nhập SSH Không Cần Mật Khẩu

Khóa SSH cho phép chúng ta xác thực mà không cần gõ mật khẩu. Ý tưởng rất đơn giản:

  1. Tạo một cặp khóa trên máy tính cục bộ (khóa riêng + khóa công).
  2. Sao chép khóa công lên máy chủ từ xa.
  3. Khi kết nối, máy chủ xác minh khóa riêng của chúng ta với khóa công đã lưu trữ.

Nếu chúng khớp, chúng ta có thể đăng nhập mà không cần mật khẩu.

Bước 1: Tạo Khóa SSH

Trên máy khách (trong trường hợp của chúng ta, máy chủ nhảy với người dùng thor):

Copy
ssh-keygen -t rsa -b 4096
  • Nhấn Enter để chấp nhận các tùy chọn mặc định.
  • Để trống passphrase (quan trọng cho tự động hóa).

Điều này sẽ tạo ra hai file:

  • ~/.ssh/id_rsa → khóa riêng của bạn (giữ an toàn!)
  • ~/.ssh/id_rsa.pub → khóa công của bạn (chia sẻ với các máy chủ)

Bước 2: Sao Chép Khóa Công Lên Máy Chủ

Để kích hoạt đăng nhập không cần mật khẩu, sao chép khóa công lên máy chủ:

Copy
ssh-copy-id -i ~/.ssh/id_rsa.pub username@hostname

Ví Dụ

Đối với một máy chủ tại 172.16.238.10 với người dùng tony:

Copy
ssh-copy-id -i ~/.ssh/id_rsa.pub tony@172.16.238.10

Bạn sẽ được yêu cầu nhập mật khẩu một lần cuối. Sau đó, bạn sẽ có thể đăng nhập mà không cần mật khẩu nữa.

Bước 3: Đăng Nhập Mà Không Cần Mật Khẩu

Bây giờ hãy thử nghiệm:

Copy
ssh tony@172.16.238.10

Lần này bạn có thể kết nối trực tiếp mà không cần nhập mật khẩu.

Ví Dụ Thực Tế: Nhiều Máy Chủ Ứng Dụng

Dưới đây là một cấu hình thực tế mà chúng tôi đã phải thiết lập đăng nhập không cần mật khẩu cho người dùng máy chủ nhảy (thor) đến nhiều máy chủ ứng dụng.

Tên Máy Chủ IP Tên Miền Người Dùng Mật Khẩu Mục Đích
stapp01 172.16.238.10 stapp01.stratos.xfusioncorp.com tony Ir0nM@n Ứng Dụng Nautilus 1
stapp02 172.16.238.11 stapp02.stratos.xfusioncorp.com steve Am3ric@ Ứng Dụng Nautilus 2
stapp03 172.16.238.12 stapp03.stratos.xfusioncorp.com banner BigGr33n Ứng Dụng Nautilus 3

Chúng tôi đã chạy:

Copy
ssh-copy-id -i ~/.ssh/id_rsa.pub tony@172.16.238.10
ssh-copy-id -i ~/.ssh/id_rsa.pub steve@172.16.238.11
ssh-copy-id -i ~/.ssh/id_rsa.pub banner@172.16.238.12

Bây giờ, người dùng thor có thể đăng nhập vào tất cả các máy chủ ứng dụng mà không cần nhập mật khẩu.

sudo Không Cần Mật Khẩu

Đôi khi, các script của chúng tôi cần quyền sudo. Theo mặc định, sudo yêu cầu mật khẩu. Chúng tôi có thể cấu hình người dùng cho sudo không cần mật khẩu.

Trên mỗi máy chủ ứng dụng, chỉnh sửa file sudoers:

Copy
sudo visudo

Thêm:

Copy
username ALL=(ALL) NOPASSWD:ALL

Thay thế username bằng tony, steve, hoặc banner.

Kết Luận

  • Tự động hóa các script
  • Quản lý nhiều máy chủ một cách dễ dàng
  • Tăng cường bảo mật với khóa thay vì mật khẩu

Hãy bắt tay vào thực hiện các bước trên để cải thiện trải nghiệm làm việc với SSH và đạt được hiệu quả cao hơn trong quản lý máy chủ của bạn!

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào