SSH là gì?
Đây là việc truy cập Server có thể dùng Termius, Putty hoặc PowerShell của Windows. Chúng ta cần Username, IP và mật khẩu. Ví dụ khi dùng PowerShell thì gõ “ssh [email protected]” sau đó nhập mật khẩu để sử dụng Server.
SSH từ xa như thế nào?
Hiểu đơn giản là bạn truy cập ssh từ một máy khác không cùng mạng LAN với máy cần SSH. Để SSH từ xa với Armbian chúng ta làm theo hướng dẫn sau.
Điều kiện:
- Domain đã add vào Cloudflare
- Đã bật Cloudflare Zero Trust
- Có quyền tạo Tunnel
Trên Armbian
- Có quyền
root - Đã cài
openssh-server
sudo apt update
sudo apt install -y openssh-server curl
Kiểm tra SSH:
systemctl status ssh
Bước 1: Cài Cloudflare (không qua docker nhé)
curl -fsSL https://pkg.cloudflare.com/cloudflare-main.gpg \
| sudo tee /usr/share/keyrings/cloudflare-main.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] \
https://pkg.cloudflare.com/cloudflared $(lsb_release -cs) main" \
| sudo tee /etc/apt/sources.list.d/cloudflared.list
sudo apt update
sudo apt install cloudflared
Kiểm tra
cloudflared --version
Bước 2: Login Cloudflare và Tạo Tunnel
Login (chỉ làm 1 lần)
cloudflared tunnel login
→ Mở browser → chọn Domain → Authorize
Tạo Tunnel
cloudflared tunnel create ten-tunnel
Bạn sẽ nhận được:
- Tunnel ID
- File credential:
~/.cloudflared/<TUNNEL_ID>.json
Bước 3: Cấu hình Tunnel cho SSH
Tạo file cấu hình
sudo mkdir -p /etc/cloudflared
sudo nano /etc/cloudflared/config.yml
Nội dung config.yml
tunnel: <TUNNEL_ID>
credentials-file: /root/.cloudflared/<TUNNEL_ID>.json
ingress:
- hostname: ssh.yourdomain.com
service: ssh://localhost:22
- service: http_status:404
Gán hostname với tunnel
cloudflared tunnel route dns ten-tunnel ssh.yourdomain.com
Bước 4: Chạy Tunnel như service
sudo cloudflared service install
sudo systemctl enable cloudflared
sudo systemctl start cloudflared
Bước 5: Cấu hình Zero Trust và tạo file cấu hình bên Client
Với đăng nhập bằng Windows tạo file config bằng Notepad (sau đó xoá đuôi txt) với nội dung sau:
Host mytv
HostName ssh.yourdomain.com
User root
ProxyCommand cloudflared access ssh --hostname %h
Sau khi hoàn tất, chỉ cần mở PowerShell của windows nhập ssh mytv thì Cloudflare sẽ hiện xác thực. Sau khi xác thực có thể nhập mật khẩu truy cập ssh.
Bảo mật (Khuyến nghị)
Tạo file sshd_config
sudo nano /etc/ssh/sshd_config
Nhập nội dung
PasswordAuthentication no
PermitRootLogin prohibit-password
Chạy lệnh
sudo systemctl restart ssh
Vì có Zero Trust bảo mật rồi nên không cần dùng mật khẩu nữa.