Thiết lập máy chủ SSH (Secure Shell) cho phép bạn kết nối và quản lý máy tính từ xa một cách an toàn. Bài viết này sẽ hướng dẫn chi tiết cách cài đặt và cấu hình SSH trên hệ điều hành Linux (cụ thể là Ubuntu) và macOS, đồng thời trang bị các biện pháp bảo mật cần thiết.
sshd_config, tạo và sử dụng SSH keys thay cho mật khẩu, đổi cổng SSH mặc định và thiết lập danh sách IP cho phép truy cập.Kiểm tra và cài đặt SSH trên Ubuntu
Trước tiên, cần xác định xem SSH đã được cài đặt trên hệ thống của bạn hay chưa. Bạn có thể kiểm tra sự tồn tại của tệp cấu hình SSH.
Để cài đặt SSH client và server trên Ubuntu, bạn sử dụng các lệnh sau:
sudo apt install openssh-client
sudo apt install openssh-server
Sau khi cài đặt, bạn cần khởi động dịch vụ SSH daemon (sshd) trên máy chủ Linux:
sudo systemctl enable --now sshd
Cấu hình máy chủ SSH (sshd_config)
Tất cả các tùy chỉnh cấu hình cho máy chủ SSH đều nằm trong tệp /etc/ssh/sshd_config. Để đảm bảo an toàn, hãy sao lưu tệp cấu hình gốc trước khi thực hiện bất kỳ thay đổi nào:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
Sau khi chỉnh sửa, bạn nên chạy lệnh sau để kiểm tra cú pháp tệp cấu hình:
sudo sshd -T -f /etc/ssh/sshd_config
Mỗi khi thực hiện thay đổi, bạn cần khởi động lại dịch vụ sshd để áp dụng:
sudo systemctl restart sshd

Các biện pháp bảo mật quan trọng khi thiết lập SSH
Để bảo vệ máy chủ SSH khỏi truy cập trái phép, bạn nên áp dụng các biện pháp sau:
1. Sử dụng SSH key thay cho mật khẩu
Việc sử dụng SSH key là một phương pháp bảo mật hiệu quả hơn nhiều so với việc sử dụng mật khẩu. Đầu tiên, trên máy client (máy bạn muốn kết nối đi), hãy tạo một cặp khóa SSH nếu bạn chưa có:
ssh-keygen -t rsa -b 4096
Lệnh này sẽ tạo ra một cặp khóa RSA được mã hóa, bao gồm khóa công khai (~/.ssh/id_rsa.pub) và khóa riêng tư (~/.ssh/id_rsa). Bạn sẽ được yêu cầu đặt một cụm mật khẩu (passphrase) cho khóa riêng tư để tăng cường bảo mật.
Tiếp theo, sao chép khóa công khai lên máy chủ SSH. Sử dụng lệnh ssh-copy-id để thêm khóa vào tệp ~/.ssh/authorized_keys trên máy chủ:
ssh-copy-id -i <$PUBLIC_KEY_PATH> <$USERNAME_ON_HOST>@<$HOST_IP>
Ví dụ: ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
Để bắt buộc sử dụng SSH key và vô hiệu hóa xác thực bằng mật khẩu, chỉnh sửa tệp /etc/ssh/sshd_config trên máy chủ và đặt PasswordAuthentication no.
2. Sử dụng cụm mật khẩu (Passphrase) cho SSH key
Luôn đặt một cụm mật khẩu mạnh cho khóa SSH của bạn. Điều này đảm bảo rằng ngay cả khi khóa riêng tư bị lộ, kẻ tấn công vẫn cần mật khẩu để sử dụng nó.
3. Thay đổi cổng SSH mặc định
Theo quy ước, SSH sử dụng cổng 22. Việc thay đổi sang một cổng khác (ví dụ: 43689) sẽ giúp giảm thiểu các cuộc tấn công tự động dò quét cổng mặc định.
Trong tệp /etc/ssh/sshd_config, bỏ ghi chú dòng #Port 22 và sửa thành:
Port 43689

4. Sử dụng danh sách IP cho phép (Allow List)
Bạn có thể giới hạn quyền truy cập SSH chỉ cho các địa chỉ IP cụ thể. Bằng cách sửa đổi các dòng ListenAddress trong /etc/ssh/sshd_config, bạn có thể chỉ định các địa chỉ IP được phép kết nối:
ListenAddress 0.0.0.0
ListenAddress 192.168.1.10
ListenAddress 192.168.1.11
Việc này chỉ cho phép các địa chỉ IP đã liệt kê kết nối đến máy chủ SSH.
5. Vô hiệu hóa đăng nhập root
Tuyệt đối không cho phép đăng nhập trực tiếp bằng tài khoản root qua SSH. Thay vào đó, hãy đăng nhập bằng tài khoản người dùng thông thường và sử dụng sudo khi cần quyền quản trị. Đặt PermitRootLogin no trong /etc/ssh/sshd_config.
6. Bật ghi log chi tiết
Kích hoạt chế độ ghi log chi tiết (verbose logging) để dễ dàng theo dõi và phát hiện các hoạt động bất thường.
LogLevel VERBOSE
Thiết lập SSH trên macOS
macOS thường đã được cài đặt sẵn SSH client. Bạn có thể kiểm tra bằng cách mở Terminal và gõ lệnh ssh. Để kích hoạt SSH server trên macOS, bạn vào System Settings > General > Sharing và bật tùy chọn Remote Login.

Tương tự như Ubuntu, bạn có thể sử dụng ssh-keygen để tạo SSH key và ssh-copy-id để chuyển khóa lên máy chủ khác.
Kết nối SSH từ client
Sau khi đã thiết lập máy chủ SSH, bạn có thể kết nối đến nó từ máy client bằng lệnh:
ssh <$USERNAME_ON_HOST>@<$HOST_IP> -p <$PORT>
Ví dụ: ssh [email protected] -p 43689
Nếu bạn đã cấu hình SSH key và passphrase, hệ thống sẽ yêu cầu bạn nhập passphrase cho khóa SSH.

Thiết lập SSH là một kỹ năng cơ bản nhưng cực kỳ quan trọng đối với các nhà phát triển và quản trị viên hệ thống. Bằng cách tuân thủ các bước hướng dẫn và áp dụng các biện pháp bảo mật, bạn có thể tạo ra một môi trường làm việc từ xa an toàn và hiệu quả. Hãy bắt đầu thiết lập SSH cho máy tính của bạn ngay hôm nay để khai thác tối đa tiềm năng của nó!