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
22/08/2024
Lượt xem

Sử dụng thành thạo lệnh ssh trong Linux qua 18 ví dụ hữu ích

22/08/2024
37 phút đọc
Lượt xem

Đánh giá

Lệnh ssh là công cụ không thể thiếu để kết nối và quản lý các máy tính khác từ xa trong hệ điều hành Linux. Để giúp bạn hiểu rõ về công cụ này, bài viết dưới đây sẽ giới thiệu chi tiết cách sử dụng lệnh ssh trong Linux thông qua các ví dụ cụ thể.

Lệnh ssh trong Linux là gì?

SSH (viết tắt của Secure Shell) là một giao thức mạng cho phép kết nối an toàn qua mạng không an toàn. Giao thức được phát triển bởi Tatu Ylonen vào năm 1995 để thay thế Telnet – một giao thức dễ bị tấn công. Lệnh ssh trong Linux sử dụng giao thức SSH nhằm đăng nhập và thực thi các lệnh trên server từ xa an toàn với tất cả dữ liệu được mã hóa.

Lệnh ssh trong Linux
Lệnh ssh trong Linux

Cú pháp của lệnh ssh trên Linux có đôi chút khác biệt, tuy nhiên bạn vẫn có thể sử dụng nhiều tùy chọn khác nhau. Cú pháp cơ bản như sau:

ssh [OPTION]... username@ip_address

Lưu ý:

    • [OPTION]…: Cho phép bạn thêm một hoặc nhiều tùy chọn cho lệnh ssh.

    • username: Tên đăng nhập của bạn trên máy chủ mà bạn muốn kết nối.

    • ip_address: Địa chỉ IP của máy chủ.

6 tùy chọn sử dụng lệnh ssh trong Linux

Lệnh ssh có vô vàn tùy chọn cho bạn lựa chọn. Để xem danh sách đầy đủ, bạn có thể gõ lệnh man dưới đây vào Terminal: 

man ssh
Tùy chọnMô tả
-4Chỉ sử dụng địa chỉ IPv4
-6Chỉ sử dụng địa chỉ IPv6
-CNén dữ liệu để tăng tốc độ kết nối
-iĐăng nhập bằng mã khóa riêng tư (private key) thay vì mật khẩu
-lChỉ định một tài khoản người dùng
-pChỉ định cổng kết nối port

iconLưu ý

Các tùy chọn trong Linux CLI phân biệt chữ hoa và thường, vì vậy hãy nhập chính xác.

3 bước thiết lập server để thực hiện lệnh ssh

Bạn sẽ cần một máy tính làm server và một máy tính làm client để kết nối cả 2 bằng lệnh ssh trong Linux. Trong bài viết này, bạn sẽ cần chuẩn bị như sau:

  • Một máy chạy hệ điều hành Linux (ví dụ Linux Ubuntu) làm server nhận kết nối SSH.
  • Một máy client (Windows/Linux/MacOS) cùng ứng dụng console (powershell/terminal) để thực hiện kết nối SSH. Ở đây Vietnix sử dụng một máy client là Kali Linux.

Câu hỏi: Có nên sử dụng Windows thay vì Linux?

Thực tế, lệnh ssh và tất cả tùy chọn của lệnh này đều hoạt động tốt trên Windows. Bạn có thể thực hiện những thao tác trong bài viết này tương tự trên Linux server và Linux client. Do đó, thật dễ dàng để bắt đầu thiết lập server của riêng bạn.

Bạn hãy thực hiện theo các bước dưới đây:

Bước 1: Mở cửa sổ terminal trên máy client (Kali Linux).

Bước 2: Gõ lệnh sau vào command prompt và nhấn phím Enter:

sudo apt-get install openssh-server

Bạn sẽ thấy kết quả như bên dưới, hãy đợi cho đến khi quá trình cài đặt hoàn tất.

Thiết lập server để làm nơi nhận các kết nối SSH
Thiết lập server để làm nơi nhận các kết nối SSH

Bước 3: Server có thể tự khởi động. Nếu không, hãy bắt đầu quá trình này và kiểm tra trạng thái bằng 2 lệnh:

sudo service ssh start
sudo service ssh status

Kết quả hiển thị active (running) cho biết server đã sẵn sàng.

Kiểm tra trạng thái và khi "active (running)" nghĩa là hệ thống đã sẵn sàng
Kiểm tra trạng thái và khi “active (running)” nghĩa là hệ thống đã sẵn sàng

Bước 4: Bây giờ để truy cập một server thì bạn sẽ cần địa chỉ IP của server đó. Tìm địa chỉ IP bằng cách nhập lệnh dưới đây và nhấn Enter:

ifconfig

inetlà thông tin về IPv4 của hệ thống cùng netmask và broadcast. inet6 đại diện cho IPv6 hiện đại cùng các thông tin đi kèm.

lenh ifconfig
Dùng lệnh ifconfig để xem IP của hệ thống

Hiện nay, lệnh ifconfig là 1 lệnh được tích hợp sẵn trên gần như tất cả các hệ thống sử dụng Linux distro (cả server và desktop). Nếu trong trường hợp bạn không tìm thấy lệnh ifconfig, hãy sử dụng lệnh dưới đây để cài đặt:

sudo apt-get install net-tools

Ví dụ 1: Kết nối đến server bằng lệnh ssh

Ở phần trước, bạn đã biết cách xác định địa chỉ IP của server. Bây giờ, bạn sẽ tìm hiểu cách truy cập máy chủ đó bằng lệnh ssh trên hệ điều hành Linux.

Nếu thực thi lệnh whoami trên server, bạn sẽ nhận được tên user đang sử dụng hiện tại. Để kiểm tra xem khi kết nối từ xa thì có phải đang sử dụng đúng tài khoản này không, ta thực hiện theo các bước sau đây:

Bước 1: Mở ứng dụng Terminal

Bước 2: Gõ lệnh sau và nhấn phím Enter:

ssh username@ip_server

Trong lệnh trên, cú pháp sẽ là ssh (mở kết nối) + tên user có trên server + @ + IPv4 của server.

Bước 4: Nhập yes nếu đây là lần đầu bạn kết nối tới server và ấn Enter.

Bước 5: Tiếp theo, nhập mật khẩu tương ứng với tên người dùng và ấn Enter.

Kết quả: Bạn sẽ nhận được kết quả tương tự như hình dưới. Terminal được khởi động với người dùng nam@vietnix giống như bạn đang sử dụng trực tiếp trên server.

Thực hiện SSH vào server
Thực hiện SSH vào server

Khi chạy lệnh whoami, hệ thống sẽ trả về kết quả là nam, giống như trên server. Giờ đây, bạn có thể quản lý server từ bất kỳ vị trí nào trên thế giới.

Dùng lệnh whoami để kiểm tra user hiện tại là ai
Dùng lệnh whoami để kiểm tra user hiện tại là ai

Ví dụ 2: Sử dụng lệnh SSH để chạy trên server

Trong ví dụ này, mình sẽ hướng dẫn các bạn cách dùng lệnh ssh để tạo và xem nội dung một file trên máy chủ Linux, ngay từ máy client của bạn.

Hãy thực hiện theo theo các bước dưới đây:

Bước 1: Mở cửa sổ Terminal trên máy client.

Bước 2: Đăng nhập vào server (thực hiện như ví dụ 1).

Bước 3: Gõ lệnh sau và nhấn phím Enter:

echo “Welcome from the local machine!” > welcome

Lệnh này sẽ tạo ra một file có tên welcome với nội dung “Welcome from the local machine!“.

Bước 4: Mở cửa sổ terminal trên server.

Bước 5: Gõ lệnh sau và nhấn phím Enter:

cat welcome

Lệnh cat sẽ hiển thị nội dung của file welcome.

Kết quả: Hình ảnh bên dưới là từ phía máy client. Ở đây, output của lệnh echo được chuyển hướng vào file welcome trên server. 

Thực hiện các lệnh trên SSH
Thực hiện các lệnh trên SSH

Tiếp theo, kiểm tra file welcome từ server và bạn sẽ thấy rằng file này có nội dung tương tự.

Kiểm tra kết quả bên phía server
Kiểm tra kết quả bên phía server

Ví dụ 3: Thực hiện lệnh không cần tạo Shell bằng lệnh ssh

Trong ví dụ này, bạn sẽ tiến hành chạy một lệnh mà không tạo Shell. Mình sẽ tạo một thư mục mới từ máy tính client và kiểm tra kết quả trên máy chủ.

Bạn hãy thực hiện theo theo các bước dưới đây:

Bước 1: Mở cửa sổ Terminal phía client.

Bước 2: Gõ lệnh sau và nhấn phím Enter:

ssh username@ip_server mkdir new_folder

Lệnh mkdir dùng để tạo directory mới tại vị trí chỉ định trên hệ thống

Bước 4: Nhập mật khẩu khi được yêu cầu và nhấn Enter.

Bước 5: Mở cửa sổ terminal ben phía server.

Bước 6: Gõ lệnh ls cú pháp như sau vào command prompt và nhấn phím Enter:

ls

Lệnh ls sẽ liệt kê mọi file và folder có trong directory mới tạo

Kết quả: Như vậy, bạn đã gửi một lệnh mà không cần đăng nhập vào server. Lúc này, một thư mục mới new_folder đã được tạo trong trong thư mục /home/nam.

Tạo thư mục mới nằm trong directory /home của server
Tạo thư mục mới nằm trong directory /home của server

Tiếp theo, khi liệt kê tất cả nội dung trong thư mục /home, bạn có thể thấy new_folder đã xuất hiện trong đó.

Thư mục mới đã xuất hiện bên phía server
Thư mục mới đã xuất hiện bên phía server

Ví dụ 4: Sử dụng lệnh để đăng nhập với tên người dùng khác 

Tùy chọn -l của lệnh ssh trong Linux được dùng để chỉ định một tên người dùng. Giả sử server của bạn có một tên người dùng khác là linux, bạn có thể làm theo các bước sau: 

Bước 1: Mở cửa sổ Terminal trên máy client.

Bước 2: Gõ lệnh sau và nhấn phím Enter:

ssh -l linux ip_server

Kết quả: Sau khi chạy lệnh, bạn sẽ đăng nhập thành công vào tài khoản linux và trên màn hình Terminal đang hiển thị “linux@vietnix“, tương tự như trên server.

Sử dụng lệnh để đăng nhập với username khác
Sử dụng lệnh để đăng nhập với username khác

Ví dụ 5: Thực hiện lệnh ssh để thay đổi port của server

Thông thường, khi kết nối từ xa vào máy chủ qua SSH, bạn sẽ sử dụng cổng mặc định là 22. Tuy nhiên, để tăng tính bảo mật và linh hoạt, bạn hoàn toàn có thể đổi sang cổng khác. Cổng mới là bất kỳ số nào bạn muốn, nhưng tốt nhất bạn nên chọn số lớn hơn 1024.

Ở đây, mình sẽ sử dụng port 2024 làm ví dụ. Hãy thực hiện theo từng bước dưới đây:

Bước 1: Nhấn CTRL + ALT + T để mở cửa sổ terminal trên Ubuntu.

Bước 2: Gõ lệnh sudo theo cú pháp sau vào command prompt và nhấn phím Enter:

sudo nano /etc/ssh/sshd_config

iconLưu ý

Bạn có thể được yêu cầu nhập password.

Bước 3: Tìm và sửa, hoặc bạn có thể thêm một dòng mới như cú pháp dưới đây:

port 2024

Bước 4: Khởi động lại server bằng cách nhập lệnh sau và nhấn Enter:

sudo service ssh restart

Bước 5: Kích hoạt firewall (tường lửa) và mở quyền truy cập cho port 3017 bằng cách nhập 2 lệnh sau và nhấn Enter:

sudo ufw enable

sudo ufw allow 2024

Bước 6: (Tùy chọn) Kiểm tra trạng thái của port 2024 bằng lệnh:

sudo ufw status

Bước 7: (Tùy chọn) Kiểm tra xem cổng ssh đã hoạt động chưag bằng lệnh netstat sau:

netstat -tulnp

Kết quả: Hình ảnh sửa đổi file sshs_config sẽ tương tự như sau:

Thay đổi port trong file cấu hình SSH của server
Thay đổi port trong file cấu hình SSH của server

Hình ảnh hiển thị sẽ cho thấy quá trình thực hiện các lệnh. Từ ufw status, bạn có thể thấy port 2024 đang hoạt động. 

Các bước thực hiện đổi và add port vào firewall ufw
Các bước thực hiện đổi và add port vào firewall ufw

Cuối cùng, bạn sẽ thấy trên màn hình server đang chờ kết nối trên port 2024.

Kiểm tra trạng thái port mới
Kiểm tra trạng thái port mới

Ví dụ 6: Kết nối tới một server bằng cổng tùy chỉnh

Ở ví dụ 5, bạn đã biết cách tạo một port mới. Tiếp theo, bạn sẽ tìm hiểu cách kết nối đến server thông qua port này bằng lệnh ssh với tùy chọn -p. Để thực hiện, bạn hãy làm theo các bước dưới đây:

Bước 1: Mở cửa sổ Terminal trên máy client.

Bước 2: Gõ lệnh sau và nhấn phím Enter:

ssh -p 2024 nam@ip_server

Bước 3: Nhập mật khẩu và nhấn phím Enter.

Kết quả: Như vậy, bạn đã đăng nhập thành công vào server thông qua port 2024.

Sử dụng SSH thông qua port 2024
Sử dụng SSH thông qua port 2024

Cú pháp cơ bản: ssh ls username ip_server -p port_num

Ghi chú: Bạn hoàn toàn có thể kết hợp option “-l” với “-p”  để tùy chọn user khác và port khác khi thực hiện SSH đến server.

Ví dụ 7: Thực hiện sao chép file bằng lệnh scp

Lệnh scp (viết tắt của secure copy) đây là công cụ lưu truyền file an toàn giữa client và server thông qua giao thức SSH. Ở ví dụ này, bạn sẽ thực hiện copy file thông qua scp.

Giả sử bạn có một file tên là local_file trên client (hệ điều hành Kali Linux) và một file là country.txt trên server (hệ điều hành Ubuntu).

vi du 7a
FIle local_file trên máy client (Kali Linux)
vi du 7b
File mới được tạo trên server (thuộc hệ điều hành Ubuntu)

Ở ví dụ này, mục tiêu của bạn là copy local_file vào server và file country.txt vào client. Hãy làm theo các bước dưới đây:

Bước 1: Mở Terminal trên máy client

Bước 2: Gõ lệnh sau vào command prompt để copy file từ client vào server:

scp nam@ip_server:/home/nam/Desktop/country.txt ~/Desktop/

Dấu / là dấu phân chia folder trên Linux, dấu ~ biểu thị thư mục home trong Linux.

scp D:\Local_machine\local_file username@ip_server:~

iconLưu ý

Dấu \ là dấu phân cách thư mục trong Windows. Và dấu ~ biểu thị thư mục home trong Linux.

Bước 3: Nhập mật khẩu và nhấn Enter.

Bước 4: Gõ lệnh scp theo cú pháp sau vào command prompt để copy file từ server vào client:

scp username@ip_server:~/remote_file D:\Local_machine # cú pháp dành cho Windows
scp nam@ip_server:/home/vietnix/Desktop/local_file ~/Desktop/ # cú pháp dành cho Linux

Bước 5: Nhập mật khẩu và nhấn Enter một lần nữa.

Kết quả: Ban đầu, bạn sao chép local_file lên server. Đó là lý do tại sao họ cung cấp đường dẫn file trong client trước, sau đó là đường dẫn đích của file đó trên server. Tương tự với việc sao chép file country.txt lên client, vị trí file trên server sẽ hiển thị trước, sau đó mới là địa chỉ đích. Kết quả hiển thị trên màn hình 100% cho biết quá trình chuyển file được thực hiện hoàn tất.

Quá trình chuyển file được thực hiện hoàn tất và bạn thấy được file của server đã có trên máy client
Quá trình chuyển file được thực hiện hoàn tất và bạn thấy được file của server đã có trên máy client

Bây giờ, bạn có thể thấy có một file local_file nằm trong thư mục /home/nam/Desktop/ của server và file country.txt nằm trên đường dẫn chỉ định của client.

File Local_file nằm trong thư mục Server
File Local_file nằm trong thư mục Server

Ví dụ 8: Sao chép file bằng giao thức sftp

Tiếp theo, bạn đã tìm hiểu một phương pháp sao chép file khác là Sftp (Secure File Transfer Protocol). Đây là giao thức truyền file an toàn khá giống với ftp nhưng sử dụng giao thức SSH để truyền file an toàn hơn.

Trong ví dụ này, bạn cần sao chép một file có tên local_file lên server và city.txt từ server sang client.

Giả sử, hiện tại bạn có một file tên là local_file trên client (hệ điều hành Kali linux) và một file là city.txt trên server (hệ điều hành Ubuntu).

File chỉ định để thực hiện lệnh sftp
File chỉ định để thực hiện lệnh sftp
File city.txt trên server (Ubuntu)
File city.txt trên server (Ubuntu)

Bạn hãy thực hiện theo các bước dưới đây:

Bước 1: Mở cửa sổ Terminal trên máy client.

Bước 2: Gõ lệnh sau vào Terminal:

sftp nam@ip_server

Bước 3: Nhập mật khẩu và nhấn Enter.

Bước 4: Gõ lệnh sau vào command prompt để copy file từ client vào server và nhấn Enter:

#dùng lệnh cd để di chuyển đến directory có chứa local_file
put D:\Local_machine\local_file #dùng cho Windows
put local_file #dùng cho Linux

Dấu \ là dấu phân cách thư mục trong Windows.

Dấu / là dấu phân cách thư mục trong Linux.

Bước 4: Gõ lệnh sau vào command prompt để copy file từ server vào client và nhấn Enter:

#dùng lệnh cd để di chuyển đến directory có chứa file city.txt
get city.txt D:\Local_machine
get city.txt

Bước 4: Gõ lệnh sau vào command prompt để thoát:

exit

Tại đây: bạn thiết lập một kết nối tới server. Sau đó, sử dụng lệnh put để sao chép file lên server và lệnh get để sao chép file từ server lên client. 

Sử dụng lệnh sftp để truyền file thông qua SSH, bạn nhận được file từ server truyền qua máy client
Sử dụng lệnh sftp để truyền file thông qua SSH, bạn nhận được file từ server truyền qua máy client

Bạn có thể thấy có một file tên local_file nằm trên server (Ubuntu) và file city.txt nằm trên client.

Local_file nằm trong thư mục home của server (Ubuntu)
Local_file nằm trong thư mục home của server (Ubuntu)

Ví dụ 9: Tạo mã khóa public và private bằng ssh-keygen

Với lệnh ssh, bạn có thể sử dụng cặp mã khóa SSH (public và private key) để kết nối tới server ngoài việc sử dụng mật khẩu. Trong ví dụ này, bạn sẽ cần tạo cặp mã khóa SSH bằng lệnh ssh-keygen.

Bạn hãy thực hiện theo các bước dưới đây:

Bước 1: Mở cửa sổ Terminal trên máy client.

Bước 2: Gõ lệnh sau vào command prompt và nhấn phím Enter:

ssh-keygen -f D:\Local_machine\mykey #dùng trên Windows
ssh-keygen -f /path/to/save/mykey #dùng trên Linux
  • mykey: tên của file khóa sẽ được tạo.
  • -f: Tạo khóa ở một vị trí nhất định.

Bước 3: Bạn có thể đặt passphrase cho khóa và nhấn Enter. Nếu không bạn bỏ trống và chọn Enter.

Bước 4: Nhập lại passphrase và nhấn Enter một lần nữa để xác thực nếu đã đặt password.

Kết quả: Sau khi thực hiện lệnh, bạn sẽ nhận được kết quả hiển thị như hình:

Tạo mã khóa public và private key bằng ssh-keygen
Tạo mã khóa public và private key bằng ssh-keygen

Bây giờ, bạn có 2 khóa đã được tạo ở vị trí chỉ định. Trong đó, file mykey là khóa cá nhân (private) còn file mykey.pub là khóa công khai (public).

2 khóa my key và mykey.pub đã được tạo ở vị trí chỉ định
Khóa my key và mykey.pub đã được tạo ở vị trí chỉ định

Ví dụ 10: Sử dụng lệnh ssh để chuyển file public key lên server

Bây giờ bạn đã tạo thành công cặp khóa. Public Key cần được đặt trên server và private key đặt trên client. Bạn có thể lưu trữ 2 cặp khóa ở bất kỳ vị trí nào. Nhưng mặc định trên Linux, Public Key sẽ được lưu trữ trong thư mục .ssh của thư mục home.

Trong ví dụ này, bạn cũng sẽ lưu trữ Public Key ở vị trí đã chọn từ ví dụ 9.

iconLưu ý

Thư mục .ssh cần được thiết lập bảo mật cao.

Nhằm đảm bảo bảo mật an toàn, bạn cần giới hạn quyền truy cập vào thư mục .ssh cho chủ sở hữu (người dùng có quyền truy cập root). Trên Ubuntu, hãy mở Terminal và nhập lệnh chmod với cú pháp như sau:

chmod 700 ~/.ssh #vị trí mặc định
chmod 700 /path/to/save/key #vị trí tùy chọn

Ngoài ra, Linux còn cung cấp một lệnh để gửi khóa công khai lên server như sau, và bạn sẽ dùng lệnh này để thực hiện gửi key cho server:

ssh-copy-id -i /path_of_the_public_key username@ip_server

Tuy nhiên, ở trên Windows PowerShell không có lệnh tương tự. Do đó, lúc này bạn cần sử dụng lệnh scp để gửi file public key. 

Hãy thực hiện theo các bước sau:

Bước 1: Nhấn tổ hợp phím Windows + R, nhập “powershell” và nhấn Enter để mở Windows PowerShell.

Bước 2: Gõ lệnh sau vào command prompt và nhấn phím Enter:

scp D:\Local_machine\mykey.pub username@ip_server:~/.ssh #gửi key vào vị trí mặc định của server từ client Windows

Bước 3: Gõ yes và nhấn Enter (nếu được yêu cầu).

Bước 4: Nhập mật khẩu và nhấn Enter.

Bước 5: Xóa file public key khỏi client.

Kết quả: Trong Powershell, bạn sẽ thấy thông báo 100% thì file đã được sao chép thành công. Đối với client là Linux khi hệ thống trả về thông báo như sau nghĩa là bạn đã gửi key thành công:

Gửi public key cho server
Gửi public key cho server

Bạn có thể dùng lệnh ls .ssh trên server để kiểm tra file public key đã có hay chưa.

Bước 6: Mở cửa sổ terminal trên Ubuntu, nhập lệnh sau và nhấn Enter:

sudo service ssh restart

Cuối cùng, bạn đừng quên xóa file public key khỏi client.

Ví dụ 11: Kích hoạt xác thực dựa trên cặp mã khóa

Để đăng nhập bằng cặp khóa private và public key, bạn cần kích hoạt cả 2 key trên server. Trong ví dụ này, bạn sẽ cần thực hiện kích hoạt xác thực dựa trên khóa bằng cách chỉnh sửa file sshd_config. Hãy thực hiện theo các bước sau:

Bước 1: Nhấn CTRL + ALT + T để mở cửa sổ terminal trên Ubuntu.

Bước 2: Nhập lệnh sau vào Terminal và nhấn Enter:

sudo nano /etc/ssh/sshd_config

Bước 3: Tìm và chỉnh sửa hoặc thêm dòng sau vào file:

PubkeyAuthentication yes

Bước 4: Nhấn CTRL + O, sau đó Y để lưu file và CTRL + X để thoát.

Kích hoạt xác thực dựa trên cặp mã khóa
Kích hoạt xác thực dựa trên cặp mã khóa

Bước 5: Chạy lệnh sau để khởi động lại dịch vụ ssh và nhấn Enter:

sudo service ssh restart
Khởi động lại dịch vụ SSH của server để áp dụng các thay đổi
Khởi động lại dịch vụ SSH của server để áp dụng các thay đổi

Ví dụ 12: Sử dụng cặp khóa public và private key để kết nối server

Cuối cùng, bạn sẽ truy cập server bằng cặp khóa public – private key với lệnh ssh trên Linux. Tùy chọn -i được sử dụng để cung cấp đường dẫn tới private key. Hãy làm theo các bước dưới đây:

Bước 1: Mở cửa sổ Terminal.

Bước 2: Gõ lệnh sau vào command prompt và nhấn phím Enter:

ssh -i D:\Local_machine\mykey username@ip_server #dùng trên Windows
ssh -i /path/to/save/mykey nam@ip_server

Bước 3: Nhập passphrase cho khóa và nhấn Enter (nếu có).

Kết quả: Giờ đây bạn đã có thể sử dụng private key và passphrase (nếu có) để đăng nhập vào server.

Dùng private key để đăng nhập SSH
Dùng private key để đăng nhập SSH

Ví dụ 13: Kích hoạt xác thực quyền truy cập bằng mã khóa

Nếu bạn muốn cho phép truy cập server thông qua cặp khóa thì bạn cần chỉnh sửa file cấu hình .sshd_config và vô hiệu hóa phương pháp xác thực dựa trên mật khẩu. Đồng thời, bạn cũng cần thêm public key vào file authorized_keys

Hãy làm theo các bước dưới đây:

Bước 1: Mở cửa sổ Terminal.

Bước 2: Gõ lệnh cat vào command prompt và nhấn phím Enter:

cat ~/.ssh/mykey.pub >> ~/.ssh/authorized_keys

iconLưu ý

Lệnh này sẽ thêm public key vào file authorized_keys. Nếu file chưa tồn tại thì lệnh sẽ tạo một file mới.

Bước 3: Gõ lệnh sau vào command prompt và nhấn phím Enter:

sudo nano /etc/ssh/sshd_config

Bước 4: Chỉnh sửa file thành tương tự như sau:

PubkeyAuthentication ye
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no
ChallengeResponseAuthentication no

Bước 5: Nhấn CTRL + O, sau đó nhấn Y để lưu file và CTRL + X để thoát.

Bước 6: Khởi động lại dịch vụ ssh bằng cách nhập lệnh sau và nhấn Enter:

sudo service ssh restart

Kết quả: Command prompt sẽ tương tự như sau:

Kích hoạt xác thực quyền truy cập bằng mã khóa
Kích hoạt xác thực quyền truy cập bằng mã khóa

Tiếp theo là cách chỉnh sửa file .sshd_config. Nếu thấy những dòng này đã có sẵn trong file, bạn chỉ cần chỉnh sửa lại. Tuy nhiên cũng có lúc bạn phải tự thêm các dòng này vào.

Chỉnh sửa file .sshd_config
Chỉnh sửa file .sshd_config

Nếu muốn bật lại xác thực dựa trên mật khẩu, bạn cần đặt giá trị yes cho dòng PasswordAuthentication.

Nếu muốn bật lại xác thực dựa trên mật khẩu, bạn cần đặt giá trị yes cho dòng PasswordAuthentication
Nếu muốn bật lại xác thực dựa trên mật khẩu, bạn cần đặt giá trị yes cho dòng PasswordAuthentication

Bây giờ, khi đăng nhập vào máy chủ, hệ thống chỉ yêu cầu nhập passphrase cho key (nếu có).

Từ bây giờ đăng nhập SSH sẽ không còn cần nhập mật khẩu nữa
Từ bây giờ đăng nhập SSH sẽ không còn cần nhập mật khẩu nữa

Ví dụ 14: Kích hoạt nén dữ liệu bằng lệnh ssh

Lệnh ssh trên Linux hỗ trợ khả năng nén dữ liệu trong quá trình truyền tải. Tính năng này đặc biệt hữu ích khi kết nối internet kém ổn định. Để kích hoạt nén dữ liệu, bạn sử dụng lệnh ssh với tùy chọn -C.

Hãy làm theo các bước dưới đây:

Bước 1: Mở cửa sổ Terminal từ máy client.

Bước 2: Gõ lệnh sau vào command prompt và nhấn phím Enter:

ssh -C nam@ip_server

Kết quả: Quá trình đăng nhập với tùy chọn -C diễn ra tương tự như đăng nhập thông thường. Bạn sẽ được yêu cầu nhập passphrase và mật khẩu như thường lệ.

Gửi dữ liệu nén bằng lệnh ssh
Gửi dữ liệu nén bằng lệnh ssh

Ví dụ 15: Sử dụng lệnh để bật chế độ chi tiết (Verbose Mode) 

Tùy chọn -v trong lệnh ssh trên Linux được sử dụng để hiển thị thông tin chi tiết trong quá trình kết nối đến một server. Tính năng này rất hữu ích trong việc xác định nguyên nhân sự cố. Bạn có thể điều chỉnh mức độ chi tiết của thông tin được hiển thị thông qua việc sử dụng tham số -v hoặc -vvv.

Để thực hiện, làm theo các bước dưới đây:

Bước 1: Mở cửa sổ Terminal.

Bước 2: Gõ lệnh sau vào command prompt và nhấn phím Enter:

sudo -v nam@ip_server

Kết quả: Bạn sẽ thấy toàn bộ quá trình kết nối được mô tả chi tiết từng bước tương tự như hình dưới.

Toàn bộ quá trình kết nối được mô tả chi tiết
Toàn bộ quá trình kết nối được mô tả chi tiết

Ví dụ 16: Tạo một nội dung cảnh bảo khi đăng nhập

Trong ví dụ này, bạn sẽ tìm hiểu cách thiết lập nội dung cảnh báo (banner message), thông báo này sẽ hiển thị khi ai đó cố gắng đăng nhập vào server bằng lệnh ssh trong Linux. Để thực hiện, bạn cần chỉnh sửa file .sshd_config theo các bước dưới đây:

Bước 1: Nhấn CTRL + ALT + T để mở cửa sổ terminal trên Ubuntu.

Bước 2: Gõ lệnh echo theo cú pháp sau vào command prompt để tạo một file chứa banner thông báo:

echo “WELCOME TO OUR SERVER” >> banner_message

Tên file banner này bạn có thể đặt tùy chọn.

Bước 3: Sử dụng lệnh dưới đây để mở file .sshd_config:

sudo nano /etc/ssh/sshd_config

Bước 4: Chỉnh sửa file .sshd_config như bên dưới:

Banner /home/walid/banner_message

iconLưu ý

Cung cấp đường dẫn file từ thư mục root, không phải thư mục home.

Bước 5: Nhấn CTRL + OY để lưu file và CTRL + X để thoát.

Bước 6: Bây giờ khởi động lại dịch vụ ssh bằng cách gõ lệnh sau và nhấn Enter:

sudo service ssh restart

Kết quả: Các lệnh cần chạy trong command prompt sẽ tương tự như sau:

Các lệnh cần chạy trong command prompt
Các lệnh cần chạy trong command prompt

Bạn sẽ thực hiện chỉnh sửa file .sshd_config tương tự như hình:

Chỉnh sửa file .sshd_config
Chỉnh sửa file .sshd_config

Sau đó, khi thử đăng nhập vào server, thông báo WELCOME TO OUR SERVER sẽ hiển thị như hình bên dưới:

Chỉnh sửa file .sshd_config
Chỉnh sửa file .sshd_config

Ví dụ 17: Vô hiệu hóa đăng nhập root để tăng bảo mật

Ví dụ, bạn cần tắt tính năng đăng nhập bằng root (quyền truy cập admin) để tăng bảo mật cho server. Để thực hiện, bạn cần chỉnh sửa file .sshd_config và sau đó khởi động lại dịch vụ ssh. 

Hãy làm theo các bước dưới đây:

Bước 1: Mở cửa sổ terminal trên Ubuntu.

Bước 2: Gõ lệnh dưới đây vào Terminal:

sudo nano /etc/ssh/sshd_config

Bước 3: Chỉnh sửa file tương tự như sau:

PermitRootLogin no

Bước 4: Lưu và thoát file bằng cách nhấn CTRL + X rồi Enter.

Bước 5: Tiếp tục gõ lệnh sau và nhấn Enter:

sudo service ssh restart

Kết quả: Lệnh đầu tiên trong hình dưới dùng để mở file .sshd_config và lệnh thứ 2 được dùng để khởi động lại dịch vụ ssh. 

Sử dụng lệnh mở file .sshd_config
Sử dụng lệnh mở file .sshd_config

Trong quá trình chỉnh sửa file, bạn sẽ thấy hầu hết các lệnh đã tồn tại sẵn. Bạn chỉ cần xóa dấu thăng (#) ở đầu dòng. Tiếp theo bạn sửa giá trị mặc định từ “yes” thành “no”. Cuối cùng lưu lại thay đổi file.

Xóa dấu thăng (#) ở đầu dòng khi thực hiện.
Xóa dấu thăng (#) ở đầu dòng khi thực hiện.

Cuối cùng, khi bạn thử đăng nhập với tư cách người dùng root, thông báo “Permission denied” sẽ hiển thị.

Đăng nhập với tư cách người dùng root, thông báo “Permission denied” sẽ hiển thị
Đăng nhập với tư cách người dùng root, thông báo “Permission denied” sẽ hiển thị

Ví dụ 18: Truy cập từ xa vào server của bạn bằng lệnh ssh (cho Windows)

Ví dụ này bạn sẽ cần truy cập vào server của mình từ xa. Tuy nhiên, hãy cẩn thận vì việc để lộ server có thể dẫn đến những vấn đề bảo mật không mong muốn.

Để thực hiện, server cần có một địa chỉ IP riêng. Bạn sẽ phải cần cài đặt cấu hình kết nối mạng của Ubuntu thành chế độ Bridged thay vì NAT trong phần cài đặt của VMware Workstation và mở port 22 trên tường lửa Windows để cho phép kết nối.

Ghi chú: Nếu đang sử dụng router, bạn sẽ cần chuyển tiếp port 22 để cho phép các kết nối từ bên ngoài mạng LAN. Ngoài ra, hãy sử dụng VPN để tăng cường bảo mật cho server của bạn.

Hãy làm theo các bước dưới đây:

Bước 1: Mở VMware Workstation.

Bước 2: Nhấp vào Ubuntu > VM > Settings.

Bước 3: Sau đó nhấp vào mục Network Adapter và đặt Network Connection thành Bridged.

Bước 4: Mở command prompt từ menu Start Windows với quyền quản trị viên.

Bước 5: Gõ lệnh sau để thêm một rule mới cho phép kết nối thông qua port 22 và nhấn Enter:

netsh advfirewall firewall add rule name="OpenSSH" dir=in action=allow protocol=TCP localport=22

Bước 6 (Tùy chọn): Để xóa rule bất kỳ lúc nào, gõ lệnh sau và nhấn Enter:

netsh advfirewall firewall delete rule name="OpenSSH" protocol=TCP dir=in localport=22

Kết quả: Các bước thực hiện sẽ tương tự như các hình bên dưới. Đầu tiên, mở phần settings trên Ubuntu server.

Đầu tiên, mở phần settings trên Ubuntu server
Đầu tiên, mở phần settings trên Ubuntu server

Tiếp theo, nhấp vào Network Adapter và đặt kết nối thành Bridged.

Nhấp vào Network Adapter và đặt kết nối thành Bridged
Nhấp vào Network Adapter và đặt kết nối thành Bridged

Sau đó, mở Command Prompt với quyền “Run as administrator” và nhập lệnh ở bước 6 để thêm một rule mới.

 Mở Command Prompt với quyền "Run as administrator" và nhập lệnh ở bước 6 để thêm một rule mới
Mở Command Prompt với quyền “Run as administrator” và nhập lệnh ở bước 6 để thêm một rule mới

Tiếp theo, bạn có thể xóa rule OpenSSH theo cách dưới đây:

Thực hiện xóa rule OpenSSH
Thực hiện xóa rule OpenSSH

Cuối cùng, bạn hãy thử kết nối tới server từ một máy tính khác và kiểm tra kết quả sau khi thay đổi.

Vietnix – Nhà cung cấp dịch vụ VPS linh hoạt, đáp ứng mọi quy mô

Vietnix mang đến các giải pháp VPS đa dạng, được thiết kế để đáp ứng nhu cầu của mọi đối tượng khách hàng, từ người dùng cá nhân đến doanh nghiệp. Dịch vụ VPS của Vietnix nổi bật với sự tiện lợi, thể hiện qua quy trình khởi tạo nhanh chóng chỉ trong 1 phút, cùng với tùy chọn linh hoạt về hệ điều hành, bao gồm cả các hệ điều hành server phổ biến và Windows cho người dùng thông thường. Ngoài ra, Vietnix cũng chú trọng đến trải nghiệm người dùng bằng cách cung cấp giao diện quản lý trực quan, dễ sử dụng, chính sách hoàn tiền trong 30 ngày đầu.

Nếu bạn đang tìm kiếm một giải pháp VPS mạnh mẽ hơn so với các gói thông thường, VPS AMD của Vietnix chính là sự lựa chọn tối ưu. Với việc trang bị CPU AMD EPYC thế hệ mới, ổ cứng NVMe tốc độ cao và băng thông lớn, VPS AMD mang đến hiệu năng xử lý và truy xuất dữ liệu vượt trội, đáp ứng tốt cho các tác vụ phức tạp và lượng truy cập lớn. Không chỉ thừa hưởng những lợi ích chung của dịch vụ VPS Vietnix như uptime 99.9%, giúp bạn đạt được hiệu quả cao hơn trong công việc và dự án của mình.

Thông tin liên hệ: 

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

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

Có thể sử dụng SSH để thực hiện các tác vụ quản lý cơ bản trên máy chủ từ xa như khởi động lại, tắt máy hay kiểm tra trạng thái hệ thống không?

Có thể. SSH cung cấp một giao diện dòng lệnh an toàn để tương tác với máy chủ từ xa, cho phép bạn thực hiện hầu hết các lệnh như khi bạn đang làm việc trực tiếp trên máy đó.

Có thể sử dụng SSH để kết nối đến một máy chủ trên mạng nội bộ từ bên ngoài không?

Có thể. Nhưng việc này đòi hỏi một số cấu hình và cân nhắc về bảo mật trong việc kết nối, quản lý từ xa, truy cập dịch vụ, sao lưu khôi phục dữ liệu.

Có thể sử dụng SSH để kết nối đến một máy chủ Windows từ một máy tính Linux không?

Có. Bạn có thể kết nối SSH đến máy chủ Windows với nhiều mục đích như quản lý từ xa, truy cập các dịch vụ

Trong bài viết này, bạn đã cùng tìm hiểu về lệnh ssh trong Linux và những ứng dụng phổ biến của lệnh này thông qua 18 ví dụ cụ thể, chi tiết. Mong rằng bạn có thể áp dụng công cụ này để kết nối đến server, thực thi lệnh và quản lý hệ thống từ xa một cách an toàn, hiệu quả.

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

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

MAXSPEED HOSTING

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

CÔNG NGHỆ ĐỘC QUYỀN

PHẦN CỨNG MẠNH MẼ

HỖ TRỢ 24/7

ĐĂNG KÝ NGAY
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