1. SSH Là Gì?
SSH (Secure Shell) là giao thức mạng cho phép kết nối bảo mật giữa hai máy tính qua mạng không an toàn. SSH thường được sử dụng để quản lý hệ thống từ xa, truyền tệp tin và thực hiện các tác vụ trên server một cách an toàn.
SSH hoạt động bằng cách mã hóa dữ liệu được truyền, đảm bảo bảo mật chống lại tấn công nghe lén và giả mạo.
2. Cài Đặt SSH Trên Server
2.1. Cài Đặt OpenSSH
Trên hệ thống Linux, OpenSSH là bộ phần mềm SSH phổ biến nhất. Để cài đặt, sử dụng các lệnh sau:
Arch Linux:
sudo pacman -S openssh
CentOS/RHEL:
sudo yum install -y openssh-server
Debian/Ubuntu:
sudo apt update && sudo apt install openssh-server -y
2.2. Kiểm Tra Và Khởi Động SSH Server
Sau khi cài đặt, đảm bảo SSH đang chạy:
sudo systemctl enable --now ssh
Kiểm tra trạng thái dịch vụ:
sudo systemctl status ssh
3. Kết Nối SSH Từ Client
SSH client có sẵn trên Linux/macOS. Trên Windows, có thể dùng PowerShell (OpenSSH) hoặc PuTTY.
3.1. Kết Nối Bằng Mật Khẩu
Trên terminal của client, nhập:
ssh username@server_ip
Nhập mật khẩu khi được yêu cầu.
Ví dụ:
ssh [email protected]
3.2. Kết Nối Bằng Khóa SSH
Tạo Cặp Khóa SSH
Trên client, tạo cặp khóa RSA:
ssh-keygen -t rsa -b 4096
Mặc định, khóa công khai sẽ được lưu tại ~/.ssh/id_rsa.pub
.
Sao Chép Khóa Lên Server
Dùng lệnh:
ssh-copy-id username@server_ip
Hoặc thủ công:
cat ~/.ssh/id_rsa.pub | ssh username@server_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Bây giờ có thể kết nối mà không cần nhập mật khẩu:
ssh username@server_ip
4. Cấu Hình SSH Server
File cấu hình chính của SSH server nằm ở:
/etc/ssh/sshd_config
4.1. Đổi Cổng Mặc Định
Mở file cấu hình:
sudo nano /etc/ssh/sshd_config
Tìm dòng:
#Port 22
Đổi thành:
Port 2222
Khởi động lại SSH:
sudo systemctl restart ssh
Khi kết nối, cần chỉ định cổng mới:
ssh -p 2222 username@server_ip
4.2. Vô Hiệu Hóa Đăng Nhập Root
Tìm dòng:
PermitRootLogin yes
Sửa thành:
PermitRootLogin no
4.3. Chỉ Cho Phép Đăng Nhập Bằng Khóa
Thay đổi:
PasswordAuthentication no
Khởi động lại SSH:
sudo systemctl restart ssh
5. Chuyển Tệp Qua SSH
5.1. SCP (Secure Copy)
Sao chép file từ client sang server:
scp file.txt username@server_ip:/remote/path/
Sao chép file từ server về client:
scp username@server_ip:/remote/path/file.txt ./
5.2. SFTP (SSH File Transfer Protocol)
Kết nối SFTP:
sftp username@server_ip
Sau khi kết nối, dùng các lệnh:
ls # Liệt kê file
get file.txt # Tải file về
put file.txt # Tải file lên server
Thoát bằng lệnh:
bye
6. Kết Luận
SSH là công cụ mạnh mẽ để quản lý hệ thống từ xa. Việc sử dụng SSH kết hợp với key-based authentication và cấu hình bảo mật giúp tăng cường an toàn cho hệ thống. Hy vọng bài viết này giúp bạn hiểu rõ hơn về SSH và cách sử dụng nó hiệu quả.