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
06/09/2024
Lượt xem

Cách cài đặt và thiết lập cấu hình SSH vào server Linux chi tiết, dễ hiểu

06/09/2024
16 phút đọc
Lượt xem

Đánh giá

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

Cài đặt và cấu hình SSH vào server 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 Thiết lập SSH vào server Linux chi tiết và dễ hiểu

SSH – chìa khóa để vào server Linux

SSH (hay còn gọi là Secure (Socket) Shell) là giao thức mạng cho phép người dùng truy cập và điều khiển vào một máy chủ nhất định từ xa từ một thiết bị qua một mạng không được bảo mật.

SSH là gì
SSH là gì

Giao thức SSH cho phép bạn thực hiện mọi tác vụ trên Linux như thiết lập phần mềm, cấu hình Linux. Với sự linh hoạt của giao thức truy cập từ xa, người dùng sẽ được tối ưu năng suất, hiệu quả làm việc trên bản phân phối Linux của mình. 

Ngoài ra, trước khi tìm hiểu chi tiết cách SSH vào server Linux bạn có thể tham khảo các câu lệnh trong Linux cơ bản để nắm bắt rõ hơn và cách thực hiện các dòng lệnh.

Cú pháp SSH

Dòng lệnh kết nối đến hệ thống remote là lệnh 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.

Bên cạnh đó, người dùng MacOS 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đị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 remote và local là giống nhau. Nếu username ở remote server 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 hoạt động trên server Linux

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. Bản chất của SSH là chương trình client, còn SSH server đang chạy trên remote_host đã chỉ định.

Cách SSH hoạt động trên server Linux
Cách SSH hoạt động trên 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 sudo sau:

sudo systemctl start ssh

Cách 1: Cài đặt SSH theo phương thức remote

Cách cài đặt và thiết lập SSH trên máy khách theo phương thức remote vô cùng đơn giản. Đôi lúc, bạn lại gặp những trường hợp không cần đến sự trợ giúp từ các phần mềm hỗ trợ: 

  • SSH được tích hợp sẵn trong terminal của hệ thống Linux
  • Người sử dụng macOS (thường) được cài đặt sẵn termninal
  • Công cụ dòng lệnh PowerShell hoặc cài đặt PuTTY (phổ biến trên hệ điều hành Windows)

Giả sử nếu gặp trường hợp chưa được cài đặt SSH trên hệ thống Linux, bạn cần thêm các gói và nâng cấp. 

Sau đó, bạn cài đặt theo cú pháp sau: 

sudo apt update && sudo apt upgrade

sudo apt install openssh-client

Trường hợp máy tính đã từng sử dụng SSH trên hệ điều hành Window và đã chuyển sang Linux, bạn cần cài đặt Putty phiên bản desktop Linux: 

sudo apt install putty

Cách 2: Cài đặt SSH trên hệ thống server

Điều kiện tiên quyết để có thể thiết lập kết nối là phần mềm để lưu trữ kết nối từ phía máy chủ được cài đặt sẵn. 

Trường hợp SSH chưa được bật trên một máy tính bất kỳ trong hệ thống server, bạn hãy cài đặt theo cú pháp: 

sudo apt install openssh-server

Sau khi cài đặt, kiểm tra trạng thái hoạt động bằng cách: 

sudo systemctl status ssh

Trạng thái Active hiển thị thông báo đã được bật 

Cài đặt SSH trên hệ thống server
Cài đặt SSH trên hệ thống server

Thỉnh thoảng, bạn lại cần bật SSH trên thiết bị từ xa. Do đó. bạn hãy phòng ngừa bảo mật đường truyền bằng cách

sudo systemctl enable ssh

Xác định địa chỉ IP – kết nối Linux Server qua SSH 

Xác định được địa chỉ IP sẽ giúp bạn dễ dàng kết nối với nhiều thiết bị qua SSH 

Thực hiện dòng lệnh để nhận được IP của hệ thống từ xa

 ip address

Sau khi thực hiện lệnh bạn sẽ nhận được địa chỉ IP của thiết bị. Trên một số phiên bản Linux cũ hơn, bạn có thể thử dòng lệnh ifconfig

ifconfig

Cách kết nối với Linux với địa chỉ IP

Với địa chỉ IP vừa tìm được, bạn sẽ cần một phần mềm hỗ trợ Putty hỗ trợ hãy thực hiện với dòng lệnh ssh sau: 

ssh username@REMOTE.IP.ADDRESS.HERE

Trong đó:

  • username: tên người dùng truy cập vào máy tính từ xa (cần thêm mật khẩu)
  • REMOTE.IP.ADDRESS.HERE: địa chỉ IP thiết bị từ xa

Sau đó, bạn nhấn Enter và nhập mật khẩu

Khi vào Putty trên hệ thống remote là Desktop bạn sẽ nhận được thông báo như hình: 

Vào Putty trên hệ thống remote là Desktop
Vào Putty trên hệ thống remote là Desktop

Như màn hình hiển thị, bạn cần nhập chính xác các mục: 

  • Hostname: Tên máy chủ hoặc IP Address vừa tìm được
  • Kiểu kết nối SSH

Sau đó, nhấn Open. Nhập tên người dùng và mật khẩu với thiết bị từ xa bạn muốn kết nối và truy cập

Nhập tên người dùng và mật khẩu với thiết bị từ xa bạn muốn kết nối và truy cập
Nhập tên người dùng và mật khẩu với thiết bị từ xa bạn muốn kết nối và truy cập

Nếu bạn có sẵn một VPS Linux hoặc một máy chủ vật lý hoạt động với hệ điều hành Linux thì bạn có thể đăng nhập thông qua giao thức SSH gồm:

    1. IP máy chủ (địa chỉ IP)

    1. Tên người dùng đăng nhập, hầu hết sẽ được cấp quyền truy cập root bằng lệnh sudo

    1. Mật khẩu của người dùng, tương tự nếu bạn được quyền truy cập root thì mật khẩu này được gọi là mật khẩu root.

    1. Cổng giao tiếp: 22 (mặc định SSH sử dụng cổng 22).

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 tùy chọn 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 tùy chọn -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 bằng lệnh cd:

cd ~/.ssh

Kiểm tra quyền của các file bằng cú pháp lệnh ls:

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

Câu hỏi thường gặp

Cách sử dụng SSH để chạy lệnh từ xa trên server Linux?

1. Mở terminal:
2. Gõ lệnh SSH: ssh user@hostname
3. Nhập mật khẩu
4. Chạy lệnh

Đâu là sự khác biệt cách thức hoạt động giữa SSH và Telnet?

SSH: Sử dụng nhiều phương thức xác thực khác nhau, bao gồm cả xác thực bằng mật khẩu và xác thực dựa trên khóa công khai. Điều này giúp tăng cường bảo mật cho kết nối.
Telnet: Chủ yếu dựa vào xác thực bằng mật khẩu, dễ bị tấn công bằng các công cụ tấn công mật khẩu thô bạo.

Các bước tạo khóa SSH để kết nối vào server Linux

1. Mở terminal:
2. Thực hiện lệnh: ssh-keygen -t rsa
3. Nhập đường dẫn hoặc mật khẩu
4. Xác nhận nhập passphrase

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 remote server. 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