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
28/05/2024
Lượt xem

Hướng dẫn cách SSH vào server Linux

28/05/2024
10 phút đọc
Lượt xem

Đánh giá

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

SSH vào server Linux là một điều rất quan trọng đối với các quản trị viên hệ thống và nhà phát triển phần mềm. Secure Shell (SSH) là một giao thức mạng cho phép bạn kết nối an toàn và điều khiển máy chủ từ xa. Bằng cách sử dụng SSH, bạn có thể truy cập vào giao diện dòng lệnh của server, thực hiện các tác vụ quản trị, triển khai ứng dụng và quản lý hệ thống một cách hiệu quả. Trong bài viết này, Vietnix sẽ hướng dẫn bạn cách SSH vào server Linux từ A-Z.

Cú pháp SSH

Lệnh chung để kết nối đến hệ thống từ xa là ssh. Đối với Windows, bạn cần cài đặt OpenSSH để dùng được lệnh ssh từ terminal. Nếu muốn làm việc trong PowerShell thì bạn đọc có thể tham khảo tài liệu của Microsoft để thêm OpenSSH vào PowerShell. Mặt khác, bạn cũng có thể cài đặt WSL (Windows Subsystem for Linux) nếu muốn sử dụng một môi trường Linux hoàn chỉnh. Lựa chọn thứ ba là sử dụng Git cho Windows có sẵn môi trường bash terminal và hỗ trợ lệnh ssh.

Người dùng Mac và Linux thì đã có sẵn lệnh ssh nên không cần phải cài đặt gì trước.

Cách gọi lệnh ssh:

ssh remote_host

Trong đó remote_host là địa chỉ IP hoặc tên miền cần kết nối đến. Lệnh này chỉ dùng nếu username trên hệ thống từ xa và local là giống nhau. Nếu username ở hệ thống từ xa không giống thì bạn cần chỉ định cụ thể bằng cú pháp sau:

ssh remote_username@remote_host

Sau khi kết nối đến server, bạn có thể cần cung cấp mật khẩu để xác thực.

Để thoát khỏi phiên ssh thì chỉ cần dùng lệnh exit.

Cách SSH vào server Linux

SSH hoạt động như thế nào?

SSH hoạt động bằng cách kết nối một chương trình client đến server ssh, hay gọi còn là sshd. Ở phần vừa rồi thì ssh chính là chương trình client, còn ssh server đang chạy trên remote_host đã chỉ định.

Cơ chế hoạt động của SSH vào server Linux
Cơ chế hoạt động của SSH vào server Linux

Hầu hết các môi trường Linux đều có server sshd chạy sẵn. Nếu không, bạn có thể cần phải kết nối tạm thời đến server thông qua một console dựa trên web.

Quá trình khởi động một server ssh sẽ tùy thuộc vào bản phân phối Linux đang sử dụng. Đối với Ubuntu thì bạn có thể dùng lệnh sau:

sudo systemctl start ssh

Cách cấu hình SSH vào server Linux

Việc thay đổi cấu hình SSH đồng nghĩa với việc thay đổi cài đặt của server sshd. Trong Ubuntu thì file cấu hình sshd chính nằm trong thư mục /etc/ssh/sshd_config.

Trước hết, hãy backup (sao lưu) lại bản file hiện tại:

sudo cp /etc/ssh/sshd_config{,.bak}

Sau đó mở file cấu hình bằng một text editor bất kỳ:

sudo nano /etc/ssh/sshd_config

Trong đó hãy để ý một dòng chỉ định port kết nối có giá trị như sau:

Port 22

Cổng ở đây cho biết cổng mà server sshd sẽ nghe các kết nối, theo mặc định là cổng 22.

Một số thông tin khác cần chú ý:

HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key HostKey /etc/ssh/ssh_host_ecdsa_key

Các host key cho biết vị trí tìm kiếm các global host key.

SyslogFacility AUTH LogLevel INFO

Hai dòng này cho biết trong các log đã ghi lại các hoạt động, sự kiện gì đã diễn ra. Nếu gặp bất kỳ vấn đề với SSH thì người dùng có thể thử tăng số lượng logging để kiểm tra vấn đề.

LoginGraceTime 120 PermitRootLogin yes StrictModes yes

Các tham số này chỉ định một số thông tin đăng nhập. Trong đó:

  • LoginGraceTime: cho biết cần duy trì kết nối trong bao lâu nếu không đăng nhập thành công (tính bằng giây). Bạn có thể đặt thời gian này cao hơn một chút so với thời gian thường cần để đăng nhập.
  • PermitRootLogin: xác định xem root user có được phép đăng nhập hay không. Bạn nên đặt thành no sau khi đã tạo một tài khoản người dùng có quyền truy cập vào các đặc quyền cao (qua su hoặc sudo) và có thể đăng nhập qua ssh.
  • stricModes: là một chế độ bảo mật, có nhiệm vụ từ chối các lượt đăng nhập nếu mọi người đều có quyền đọc các file xác thực. Việc này giúp ngăn chặn đăng nhập khi file cấu hình không an toàn.
X11Forwarding yes X11DisplayOffset 10

Các tham số này cấu hình X11 Forward – một cơ chế cho phép xem GUI của hệ thống remote trên máy local. Người dùng nên bật option này trên server và được cấp cùng với SSH client trong quá trình kết nối (bằng option -X).

Sau khi thực hiện các thay đổi, hãy lưu rồi đóng lại file. Nếu sử dụng nano thì dùng tổ hợp Ctrl+X, nhập Y rồi nhấn Enter để hoàn tất. Tiếp đến bạn cần reload lại server sshd để áp dụng các thay đổi.

sudo systemctl reload ssh

Bạn có thể mở nhiều cửa sổ terminal khác nhau khi thực hiện thay đổi để khôi phục lại các cấu hình nếu cần.

Cách đăng nhập vào SSH bằng key

Bạn hoàn toàn có thể đăng nhập vào hệ thống remote bằng mật khẩu, nhưng phương thức xác thực dựa trên key sẽ nhanh và an toàn hơn. Trước tiên hãy cùng tìm hiểu cách thức hoạt động của phương pháp xác thực dựa trên key.

Phương thức xác thực bằng key sẽ tạo một cặp khóa: private key và public key. Trong đó private key nằm trên máy client và được giữ bí mật. Còn public key sẽ được cung cấp cho bất kỳ bên nào hoặc đặt trên server muốn truy cập.

Khi kết nối bằng một cặp key thì server sẽ sử dụng public sẽ tạo một thông báo cho máy client và chỉ có thể được đọc bởi private key. Máy client sau đó gửi một phản hồi lại server để server biết được client này có hợp lệ hay không. Quá trình này được thực hiện tự động sau khi cấu hình xong các key.

Cách tạo SSH key

Các key SSH sẽ được tạo trên máy local ccuar bạn (máy client kết nối đến server chỉ định):

ssh-keygen -t rsa

Bạn có thể được yêu cầu nhập mật khẩu cho file key, bạn có thể nhấn Enter nếu muốn bỏ qua bước này. Sau khi chạy lệnh trên, key sẽ được tạo tại ~/.ssh/id_rsa.pub và ~/.ssh/id_rsa.

Điều hướng đến thư mục .ssh:

cd ~/.ssh

Kiểm tra quyền của các file:

ls -l # Output: -rw-r--r-- 1 demo demo  807 Sep  9 22:15 authorized_keys -rw------- 1 demo demo 1679 Sep  9 23:13 id_rsa -rw-r--r-- 1 demo demo  396 Sep  9 23:13 id_rsa.pub

Có thể thấy rằng file id_rsa chỉ có thể được đọc và ghi bởi chủ sở hữu. Việc này giúp bảo mật private key. Mặt khác, file id_rsa.pub có thể được chia sẻ với những bên khác.

Cách truyền public key đến server

Nếu đã có sẵn quyền truy cập dựa trên password vào server thì bạn có thể sao chép public key vào bằng lệnh sau:

ssh-copy-id remote_host

Lệnh này sẽ khởi tạo một phiên SSH, sau khi nhập mật khẩu thì bạn sao chép public key vào file key của server để đăng nhập mà không cần mật khẩu ở những lần sau.

Các lựa chọn ở phía client

Phía client có thể áp dụng một số flag khi kết nối qua SSH. Giả sử bạn vừa thay đổi cổng port trong cấu hình của sshd thì bạn cần khớp cổng này ở phía client bằng lệnh sau:

ssh -p port_number remote_host

Nếu chỉ muốn thực thi một lệnh duy nhất trên hệ thống remote thì bạn có thể chỉ định ở sau tên host như sau:

ssh remote_host command_to_run

Sau khi thực hiện lệnh trên, bạn sẽ kết nối đến máy remote, xác thực và lệnh sẽ được thực thi. Ngoài ra bạn đã enable X11 Forwarding ở phần vừa rồi nên bạn có thể truy cập các chức năng của nó như sau:

ssh -X remote_host

Bỏ phương thức xác thực bằng password

Nếu đã tạo key SSH thì bạn có thể tăng khả năng bảo mật của server bằng cách disable (vô hiệu hoá) phương thức xác thực chỉ dựa trên password. Ngoài console thì người dùng chỉ có thể đăng nhập server bằng private key đã cài trên máy.

Mở file cấu hình sshd bằng quyền sudo:

sudo nano /etc/ssh/sshd_config

Tìm và bỏ comment dòng có Password Authentication (bỏ dấu # ở đầu), sau đó đặt giá trị thành no:

PasswordAuthentication no

Sau đó lưu và đóng file, reload lại daemon SSH để áp dụng các thay đổi:

sudo systemctl reload ssh

Lời kết

SSH là một giao thức rất an toàn, nhẹ và dễ sử dụng để kết nối đến các server từ xa. Biết cách SSH vào server Linux sẽ rất hữu ích khi làm việc liên quan đến các hệ thống nằm ở các vị trí khác nhau và vẫn giữ được sự đồng bộ và ổn định. Nếu gặp bất kỳ khó khăn nào trong quá trình thiết lập kết nối thì hãy để lại ở phần comment bên dưới để được hỗ trợ nhanh nhất bởi Vietnix nhé!

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

Chọn chủ đề :

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

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

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

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

7 NGÀY MIỄN PHÍ

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

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