Lệnh ssh trong Linux

Giới thiệu

Trong lab này, bạn sẽ học cách sử dụng lệnh Secure Shell (SSH) để kết nối đến các server Linux từ xa và truyền file giữa các host cục bộ và từ xa. Lab này bao gồm các kiến thức cơ bản về giao thức SSH, bao gồm cách thiết lập một kết nối an toàn, thực thi lệnh trên server từ xa và truyền file sử dụng lệnh SCP (Secure Copy). Nội dung này phù hợp cho những người quan tâm đến kỹ năng mạng và giao tiếp trong môi trường Linux.

Giới thiệu về SSH (Secure Shell)

Trong bước này, bạn sẽ học về giao thức Secure Shell (SSH), một phương pháp được sử dụng rộng rãi để kết nối an toàn đến các server Linux từ xa. SSH cung cấp giao tiếp được mã hóa giữa máy cục bộ của bạn và server từ xa, đảm bảo tính riêng tư và toàn vẹn dữ liệu của bạn.

Đầu tiên, hãy kiểm tra trạng thái SSH server trên Ubuntu 22.04 Docker container:

sudo systemctl status ssh

Ví dụ đầu ra:

● ssh.service - OpenSSH server daemon
     Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2023-04-21 06:53:22 UTC; 1min 30s ago
   Main PID: 1026 (sshd)
      Tasks: 1 (limit: 1071)
     Memory: 3.0M
        CPU: 17ms
     CGroup: /system.slice/ssh.service
             └─1026 /usr/sbin/sshd -D

Đầu ra cho thấy SSH server đang chạy và hoạt động trên container Ubuntu.

Tiếp theo, hãy thử kết nối đến server từ xa sử dụng lệnh SSH:

ssh labex@localhost

Khi được hỏi, hãy nhập mật khẩu cho user labex. Nếu kết nối thành công, bạn sẽ thấy dấu nhắc lệnh của server từ xa.

Để thoát phiên SSH, gõ exit và nhấn Enter.

Kết nối đến Server Linux Từ xa qua SSH

Trong bước này, bạn sẽ học cách kết nối đến một server Linux từ xa sử dụng lệnh SSH.

Đầu tiên, hãy xác minh rằng bạn có thể kết nối đến server từ xa bằng lệnh ssh:

ssh labex@localhost

Khi được hỏi, hãy nhập mật khẩu cho user labex. Nếu kết nối thành công, bạn sẽ thấy dấu nhắc lệnh của server từ xa.

Bây giờ, hãy khám phá một số tùy chọn kết nối SSH bổ sung:

## Connect to the remote server and execute a command
ssh labex@localhost ls -l

## Connect to the remote server and open an interactive shell
ssh -t labex@localhost bash

## Connect to the remote server using a specific SSH port (default is 22)
ssh -p 2222 labex@localhost

Ví dụ đầu ra:

total 12
drwxr-xr-x 2 labex labex 4096 Apr 21 07:00 project
-rw-r--r-- 1 labex labex    0 Apr 21 07:00 test.txt

Để thoát phiên SSH, gõ exit và nhấn Enter.

Truyền File Giữa Các Host Cục bộ và Từ xa Sử dụng SCP

Trong bước này, bạn sẽ học cách sử dụng lệnh Secure Copy (SCP) để truyền file giữa máy cục bộ của bạn và server Linux từ xa.

Đầu tiên, hãy tạo một file thử nghiệm trên máy cục bộ:

touch ~/project/test_file.txt
echo "This is a test file." > ~/project/test_file.txt

Bây giờ, hãy copy file từ máy cục bộ đến server từ xa:

scp ~/project/test_file.txt labex@localhost:~/project/

Khi được hỏi, hãy nhập mật khẩu cho user labex. File sẽ được truyền đến server từ xa.

Để copy một file từ server từ xa đến máy cục bộ, sử dụng lệnh sau:

scp labex@localhost:~/project/test_file.txt ~/project/

Một lần nữa, nhập mật khẩu cho user labex khi được hỏi. File sẽ được copy đến máy cục bộ.

Bạn cũng có thể sử dụng SCP để copy toàn bộ các thư mục giữa các host cục bộ và từ xa:

## Copy a directory from local to remote
scp -r ~/project labex@localhost:~/

## Copy a directory from remote to local
scp -r labex@localhost:~/project ~/

Tùy chọn -r được sử dụng để copy đệ quy thư mục và nội dung của nó.

Tóm tắt

Trong lab này, bạn đã học về giao thức Secure Shell (SSH), một phương pháp được sử dụng rộng rãi để kết nối an toàn đến các server Linux từ xa. Bạn đã xác minh trạng thái SSH server trên Ubuntu 22.04 Docker container và kết nối thành công đến server từ xa sử dụng lệnh SSH. Ngoài ra, bạn đã khám phá các tùy chọn kết nối SSH khác nhau, như thực thi lệnh từ xa, mở một shell tương tác và kết nối đến server sử dụng một port cụ thể.

Hơn nữa, bạn đã học cách truyền file giữa các host cục bộ và từ xa sử dụng lệnh Secure Copy (SCP). Điều này cho phép bạn copy một cách an toàn các file và thư mục giữa máy cục bộ của bạn và server từ xa, đảm bảo tính riêng tư và toàn vẹn dữ liệu của bạn.

400+ câu lệnh phổ biến trong Linux