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.
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
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ọn | Mô tả |
-4 | Chỉ sử dụng địa chỉ IPv4 |
-6 | Chỉ sử dụng địa chỉ IPv6 |
-C | Né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 |
-l | Chỉ định một tài khoản người dùng |
-p | Chỉ định cổng kết nối port |
Lư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.
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.
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
inet
là 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.
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
18 ví dụ sử dụng lệnh ssh trong Linux
- Kết nối đến server bằng lệnh ssh
- Sử dụng lệnh SSH để chạy trên server
- Thực hiện lệnh không cần tạo Shell bằng lệnh ssh
- Sử dụng lệnh để đăng nhập với tên người dùng khác
- Thực hiện lệnh ssh để thay đổi port của server
- Kết nối tới một server bằng cổng tùy chỉnh
- Thực hiện sao chép file bằng lệnh scp
- Sao chép file bằng giao thức sftp
- Tạo mã khóa public và private bằng ssh-keygen
- Sử dụng lệnh ssh để chuyển file public key lên server
- Kích hoạt xác thực dựa trên cặp mã khóa
- Sử dụng cặp khóa public và private key để kết nối server
- Kích hoạt xác thực quyền truy cập bằng mã khóa
- Kích hoạt nén dữ liệu bằng lệnh ssh
- Sử dụng lệnh để bật chế độ chi tiết (Verbose Mode)
- Tạo một nội dung cảnh bảo khi đăng nhập
- Vô hiệu hóa đăng nhập root để tăng bảo mật
- Truy cập từ xa vào server của bạn bằng lệnh ssh
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.
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.
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.
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ự.
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
.
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 đó.
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.
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
Lư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:
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.
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.
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.
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).
Ở 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:~
Lư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.
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.
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).
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.
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.
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:
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).
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.
Lư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:
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.
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
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.
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
Lư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:
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.
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ó).
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ệ.
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.
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
Lư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 + O và Y để 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:
Bạn sẽ thực hiện chỉnh sửa file .sshd_config tương tự như hình:
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:
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.
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.
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ị.
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.
Tiếp theo, 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.
Tiếp theo, bạn có thể xóa rule OpenSSH theo cách dưới đây:
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ả.