Cách quản lý server Linux từ xa bằng SSH

Quản lý server vẫn là một nhiệm vụ cần thiết và đôi khi khá nặng nề. Nó đặc biệt khó khăn với các server từ xa hoặc headless server. Rất may, đã có Secure Shell (SSH). Secure Shell là một giao thức mạng cho phép các service chạy trên một mạng không an toàn.

SSH tự hào có rất nhiều chức năng. Một trong số đó để quản lý server từ xa. Hãy cùng tìm hiểu cách quản lý Linux server từ xa qua SSH, bao gồm kết nối đến cài đặt phần mềm và chuyển file, qua bài viết sau đây.

SSH là gì?

SSH là viết tắt của Secure Shell. Đó là một giao thức mạng mã hóa. Để biết thêm thông tin chi tiết, vui lòng tham khảo bài viết: Tìm hiểu về SSH.

Thiết lập cho server để chấp nhận SSH

Trước khi bạn bắt đầu quản lý Linux server của mình thông qua SSH, bạn sẽ phải thiết lập server của mình, để nó cho phép các kết nối SSH. Giả sử ta có một Plex media headless server chuyên dụng. Do không có màn hình và thiết bị ngoại vi, nên ta sẽ sử dụng SSH để quản lý server. Khi cài đặt hoặc cập nhật phần mềm và chuyển các file, chỉ đơn giản là cài đặt SSH vào server. Thiết lập chính xác là một ThinkServer TS140 chạy Ubuntu 16.04 LTS. Tùy thuộc vào phần cứng và bản phân phối Linux của bạn, việc thiết lập cho SSH có thể thay đổi đôi chút.

Để thiết lập cho Linux server của bạn chấp nhận các kết nối đến, bạn sẽ cần phải cài đặt công cụ đăng nhập từ xa cho giao thức SSH. Một trong những công cụ phổ biến nhất là OpenSSH. Trên các bản phân phối dựa trên Debian, OpenSSH có sẵn thông qua các kho lưu trữ chính. Mở một terminal mới (Ctrl + Alt + T) và nhập lệnh sau:

sudo apt-get update

Điều này thực hiện cập nhật và đảm bảo bạn có các kho lưu trữ mới nhất. Trước khi tiến hành cài đặt OpenSSH, hãy kiểm tra mọi nâng cấp. Trong terminal, hãy chạy lệnh:

sudo apt-get upgrade

Kiểm tra mọi nâng cấp

Khi bạn đã cập nhật và nâng cấp, hãy mở một dòng lệnh mới và nhập:

sudo apt-get install openssh-server

Mở dòng lệnh mới

Định cấu hình cài đặt SSH cho server

Sau khi OpenSSH đã được cài đặt ở phía server, bạn có thể chỉnh sửa thông tin cấu hình cơ bản. Mở một terminal mới và nhập chuỗi sau đây để mở file cấu hình SSH:

sudo nano /etc/ssh/sshd_config 

Định cấu hình SSH

Ở đây bạn có thể chỉ định các cài đặt khác nhau. Theo mặc định, SSH server của bạn sẽ hoạt động trên cổng 22. Vì vậy, ví dụ, bạn có thể tự thay đổi từ cổng 22 sang cổng bạn chọn. Ngoài ra, bạn có thể tăng cường bảo mật bằng cách nhập số đăng nhập tối đa. Trong Port, tìm dòng MaxAuthTries. Bạn có thể nhập bất kỳ số nào ở đây. Vì vậy, để chọn số lần đăng nhập tối đa là bốn, hãy nhập:

MaxAuthTries 4

Sau khi cài đặt OpenSSH, SSH server sẽ chạy. Nhưng để kiểm tra, chỉ cần mở một terminal và chạy:

sudo service ssh status

Kiểm tra SSH status

Điều này sẽ trả về một thông báo rằng SSH đã được kích hoạt. Để khởi động SSH, hãy mở một dòng lệnh và nhập:

sudo service ssh start

Và để ngăn SSH chạy, hãy nhập:

sudo service ssh stop

Truy cập từ xa một Linux server thông qua SSH

Bây giờ, SSH đã được cài đặt và đang chạy, bạn có thể kết nối từ xa thông qua nó. Nếu bạn đang đăng nhập vào Linux server từ xa, bạn sẽ cần địa chỉ IP của server. Nó sẽ có dạng 192.168.0.x. Sau khi đã có địa chỉ IP của Linux server, bạn cũng cần có phương tiện đăng nhập qua SSH từ một máy khác. Có một số phương pháp để đăng nhập từ xa bằng SSH.

Sử dụng SSH trên các hệ điều hành dựa trên Unix

Nếu bạn đang sử dụng hệ thống dựa trên Unix như Linux, macOS hoặc FreeBSD, SSH có sẵn trong dòng lệnh. Trong một terminal, hãy chạy:

ssh [remote host]

Trong đó, [remote host] là địa chỉ IP bạn đang truy cập. Nếu tên người dùng của bạn khác với hệ thống từ xa, bạn có thể chỉ định tên người dùng chính xác bằng cách nhập:

ssh [remote username]@[remote host]

Sau khi nhập thông tin này, bạn sẽ được hỏi có muốn tiếp tục kết nối không. Sau đó, bạn sẽ được nhắc nhập tên người dùng và mật khẩu của mình.

Nhập tên người dùng và mật khẩu

Ngoài ra, nếu bạn muốn bỏ qua toàn bộ dòng lệnh, bạn có thể đăng nhập vào Linux server của mình qua mạng. Trên máy Linux, điều hướng đến Connect to Server và nhập ssh://[IP address]. Bạn sẽ được yêu cầu cung cấp tên người dùng và mật khẩu.

Connect to Server

Ưu điểm chính của phương pháp này là bạn sẽ có điều hướng thư mục đồ họa hoàn chỉnh. Đây được gọi là SSH File Transfer Protocol (Giao thức truyền file SSH) hoặc SFTP. Điều này làm cho việc truyền file dễ dàng hơn nhiều. Vì Linux server trong ví dụ là một Plex server chuyên dụng, nên trừ khi thực hiện cập nhật, SFTP thường được sử dụng.

SSH với PuTTY

Nếu bạn đang sử dụng PC hoặc Mac, bạn sẽ cần một SSH client. PuTTY có lẽ là SSH client nổi tiếng nhất. Cài đặt PuTTY trên máy tính MacOS hoặc Linux của bạn. Mở PuTTY và xem phần Session. Trong hộp có nhãn Host Name, hãy nhập địa chỉ IP của bạn. Đảm bảo chỉ định đúng cổng. Nếu sử dụng mặc định, hãy để nguyên giá trị này là 22.

Chọn cổng 22

Bây giờ bạn sẽ thấy một terminal với một dấu nhắc đăng nhập. Nhập tên người dùng cho Linux server tại đây.

Sau khi nhập tên người dùng, bạn sẽ được nhắc nhập mật khẩu, nếu bạn đã bảo vệ Linux server của mình bằng mật khẩu. Nhập thông tin đó và bạn sẽ thấy thông báo chào mừng, cùng thông tin về hệ thống của bạn và dòng lệnh, giống như bạn sẽ thấy trên Linux server của mình.

Các SSH client thay thế

Mặc dù PuTTY vẫn là SSH client phổ biến nhất, nhưng có rất nhiều lựa chọn thay thế. Lựa chọn hàng đầu là Bitvise (chỉ dành cho Windows). Nguyên nhân là nó không chỉ bao gồm giao diện dòng lệnh để quản lý từ xa Linux server thông qua SSH, mà còn có khả năng SFTP. Do đó, nó hoàn hảo cho cả việc truyền file và quản lý chung. Khi chỉ cần cập nhật hoặc thực hiện khởi động lại, bạn có thể sử dụng Bitvise SSH Client để truy cập dòng lệnh. Nhưng đối với việc chuyển file, hãy sử dụng giao diện đồ họa.

Giống như PuTTY hoặc khởi động SSH thông qua dòng lệnh trên Linux, bạn cần nhập địa chỉ IP, tên người dùng và mật khẩu của mình.

Nhập thông tin cần thiết

Bạn sẽ nhận được lời nhắc hỏi xem bạn có muốn chấp nhận phiên không. Bạn có thể chấp nhận chỉ cho phiên đó hoặc lưu để sử dụng trong tương lai. Sau đó, bạn sẽ được yêu cầu nhập mật khẩu của Linux server mà bạn đang quản lý từ xa.

Nhập mật khẩu quản lý từ xa

Sau đó, Bitvise sẽ mở cả dòng lệnh và cửa sổ đồ họa SSH.

Bitvise

Cửa sổ SFTP giúp quản lý việc truyền file thực sự đơn giản, cộng với dòng lệnh SSH truyền thống cho nhiều chức năng.

Cách quản lý một Linux server từ xa với SSH

SSH được định cấu hình trên cả server và thiết bị bạn sẽ sử dụng để quản lý server của mình. Vậy bạn có thể thực sự làm những gì? Câu trả lời là bất cứ điều gì bạn có thể làm với dòng lệnh Linux. Một số tác vụ phổ biến mà bạn có thể làm trước tiên là cài đặt phần mềm, cập nhật, khởi động lại, sao chép file và thậm chí chạy các ứng dụng GUI. Ví dụ, bạn có thể sao chép file bằng các lệnh sau:

scp [remote host]:[local file] [destination directory]

scp [local file] [remote host]:[destination directory]

Cài đặt phần mềm chỉ có nghĩa là nhập đúng lệnh thích hợp. Trong ví dụ này, khi cài đặt Plex trên headless TS140 thông qua SSH, chỉ cần nhập:

sudo apt-get install plexmedia server -y

Tương tự như vậy, để tạo một WordPress server, bạn sẽ chỉ cần làm theo các chi tiết cài đặt nhưng thông qua một dòng lệnh SSH.

Những gì bạn có thể làm phụ thuộc vào server và mục đích nó được sử dụng. Ví dụ, khi chạy một Plex headless server chuyên dụng, SSH và SFTP hầu hết được sử dụng để chuyển file với các cập nhật phần mềm không thường xuyên. Bạn cũng có thể sử dụng SSH để truy cập các file nhật ký và chạy các benchmark để kiểm tra hiệu suất CPU. Nếu bạn đang chạy một web server, bạn có thể muốn sao lưu trang web của mình bằng cách sử dụng dòng lệnh SSH.

Nếu bạn đang chạy một Linux server, SSH là một phương tiện tuyệt vời để quản lý nó từ xa. Bạn giữ quyền kiểm soát dòng lệnh đầy đủ và thậm chí có thể chạy các ứng dụng GUI và thực hiện truyền file. Có khả năng gần như vô hạn đối với những gì bạn có thể thực hiện khi quản lý Linux server từ xa thông qua SSH. Bạn có thể thiết lập file server, media server, Linux game server và hơn thế nữa. Bạn thậm chí có thể quản lý một headless Raspberry Pi server bằng SSH. Hơn nữa, có rất nhiều chương trình SSH client đa nền tảng.

Bạn đang sử dụng SSH như thế nào và bạn đang quản lý loại server nào? Hãy cho chúng tôi biết về điều đó trong phần bình luận bên dưới nhé!

Xem thêm:

Thứ Bảy, 19/01/2019 11:21
51 👨 4.381