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.