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 |
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 sử dụng 3 thiết bị chính:
- Một máy ảo Ubuntu chạy trên VMware Workstation làm server.
- Một máy tính Windows 10 làm client.
- Windows PowerShell để kết nối tới server.
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 Ubuntu.
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
Bạn sẽ thấy địa chỉ IP hiển thị sau từ khóa inet.
Nếu thiếu lệnh ifconfig, bạn sử dụng lệnh dưới đây để cài đặt:
sudo apt-get install net-tools
Bạn sẽ thấy kết quả tương tự trên terminal.
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 người dùng là walid. Để kiểm tra xem khi kết nối từ xa thì có phải đang sử dụng đúng tài khoản walid này không, ta thực hiện theo các bước sau đây:
Bước 1: Mở cửa sổ powershell trên Windows.
Bước 2: Gõ lệnh sau vào command prompt và nhấn phím Enter:
ssh walid@192.168.235.129
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 walid@Ubuntu giống như server. Khi chạy lệnh whoami, hệ thống sẽ trả về kết quả là walid, 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 tính cá nhân 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ổ powershell trên Windows.
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ào command prompt và nhấn phím Enter:
echo “Welcome from the local machine!” > welcome
Bước 4: Mở cửa sổ terminal trên Ubuntu.
Bước 5: Gõ lệnh sau vào command prompt và nhấn phím Enter:
cat welcome
Kết quả: Hình ảnh bên dưới là từ Windows PowerShell. Ở đây, output của lệnh echo được chuyển hướng vào file welcome.
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ổ powershell trên Windows.
Bước 2: Gõ lệnh sau vào command prompt và nhấn phím Enter:
ssh walid@192.168.235.129 mkdir newdirectory
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 trên Ubuntu.
Bước 6: Gõ lệnh ls cú pháp như sau vào command prompt và nhấn phím Enter:
ls
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 newdirectory đã được tạo trong trong thư mục home.
Tiếp theo, khi liệt kê tất cả nội dung trong thư mục home, bạn có thể thấy newdirectory đã nằm 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à jim, bạn có thể làm theo các bước sau:
Bước 1: Mở cửa sổ powershell trên Windows.
Bước 2: Gõ lệnh sau vào command prompt và nhấn phím Enter:
ssh -l jim 192.168.235.129
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 jim và trên màn hình Terminal đang hiển thị “jim@Ubuntu“, 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 3017 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
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 3017
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 3017
Bước 6: (Tùy chọn) Kiểm tra trạng thái của port 3017 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 3017 đ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 3017.
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ổ powershell trên Windows.
Bước 2: Gõ lệnh sau vào PowerShell và nhấn phím Enter:
ssh -p 3017 walid@192.168.235.129
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 3017.
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 Windows) và một file là remote_file 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à remote_file vào client. Hãy làm theo các bước dưới đây:
Bước 1: Nhấn phím Windows + R, sau đó nhập powershell và nhấn Enter để mở Windows Powershell.
Bước 2: Gõ lệnh sau vào command prompt để copy file từ client vào server:
scp D:\Local_machine\local_file walid@192.168.235.129:~
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 walid@192.168.235.129:~/remote_file D:\Local_machine
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 Windows trước, sau đó là đường dẫn đích của file đó. Tương tự với việc sao chép file remote_file 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 của server và file remote_file nằm trên client Windows.
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à remote_file 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 Windows) và một file là remote_file 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ổ powershell trên Windows.
Bước 2: Gõ lệnh sau vào PowerShell:
sftp walid@192.168.235.129
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:
put D:\Local_machine\local_file
Bước 4: Gõ lệnh sau vào command prompt để copy file từ server vào client và nhấn Enter:
get remote_file D:\Local_machine
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 trong thư mục home của server (Ubuntu) và file remote_file nằm trên client Windows.
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ổ powershell trên Windows.
Bước 2: Gõ lệnh sau vào command prompt và nhấn phím Enter:
ssh-keygen -f D:\Local_machine\mykey
Bước 3: Bạn có thể đặt passphrase cho khóa và nhấn Enter.
Bước 4: Nhập lại passphrase và nhấn Enter một lần nữa để xác thực.
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 riêng tư còn file mykey.pub là khóa công khai.
Ví dụ 10: Sử dụng lệnh ssh để chuyển file public key lên server
Ở ví dụ trước, bạn đã tạo ra 2 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í đó.
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
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:
ssh-copy-id -i /path_of_the_public_key walid@192.168.235.129
Tuy nhiê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 walid@192.168.235.129:~/.ssh
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.
Bước 6: Mở cửa sổ terminal trên Ubuntu, nhập lệnh sau và nhấn Enter:
sudo service ssh restart
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.
Trên Ubuntu, trong thư mục .ssh sẽ có một file mới tên là mykey.pub.
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
Tương tự, bạn sẽ thực hiện chạy các lệnh trong Terminal như hình sau.
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ổ poweshell trên Windows.
Bước 2: Gõ lệnh sau vào command prompt và nhấn phím Enter:
ssh -i D:\Local_machine\mykey walid@192.168.235.129
Bước 3: Nhập passphrase cho khóa và nhấn Enter.
Bước 4: Tiếp theo, nhập mật khẩu đăng nhập và nhấn Enter.
Kết quả: Giờ đây bạn đã có thể sử dụng private key và passphrase để đă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ổ powershell trên Windows.
Bước 2: Gõ lệnh cat vào command prompt và nhấn phím Enter:
cat ~/.ssh/mykey.pub >> ~/.ssh/authorized_keys
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 yes
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. Nhưng 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.
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ổ powershell trên Windows.
Bước 2: Gõ lệnh sau vào command prompt và nhấn phím Enter:
ssh -C walid@192.168.235.129
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ổ powershell trên Windows.
Bước 2: Gõ lệnh sau vào command prompt và nhấn phím Enter:
sudo -v walid@192.168.235.129
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
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
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.
Cuối cùng, khi 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
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.
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, hãy thử kết nối tới server từ một máy tính khác và kết quả là đăng nhập thành công.
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ụ
Lời kết
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ả.