Install
openclaw skills install @thinhbuiii/swap-setup"Thêm swap cho VPS qua chat, không cần terminal: agent sinh SSH key dùng một lần, người dùng dán public key vào panel, agent tạo swap."
openclaw skills install @thinhbuiii/swap-setupGiúp người dùng không rành kỹ thuật thêm dung lượng swap cho VPS mà không phải gõ lệnh. Người dùng chỉ làm một việc duy nhất bằng click chuột (dán public key vào panel VPS).
Việc này thay đổi hệ thống của VPS:
/etc/fstab (thêm 1 dòng cho swap) — file ảnh hưởng tới lúc khởi động máy./swapfile trên ổ đĩa của VPS.Chỉ chạy khi người dùng hiểu và đồng ý. Agent phải nêu rõ các điểm trên và chờ người dùng xác nhận trước khi làm.
Phạm vi (scope) — chỉ đúng việc này:
/etc/fstab để swap tự bật lại sau reboot.🔑 CƠ CHẾ: KEY-ONLY, DÙNG MỘT LẦN (THU HỒI SAU KHI XONG). Agent tự tạo một cặp SSH key dùng riêng cho việc này. Agent giữ private key, chỉ đưa public key cho người dùng. Người dùng copy public key rồi dán vào ô SSH Keys trong panel quản trị VPS (Vultr, DigitalOcean, AWS Lightsail, aCloud, Vietnix, AZDIGI, ...). Không có bí mật nào đi qua chat; không có mật khẩu; người dùng không mở terminal.
⏹ Thu hồi khi xong (bắt buộc): sau khi tạo swap thành công, agent xóa cặp key dùng riêng cho việc này khỏi máy agent và hướng dẫn người dùng xóa key đó khỏi panel VPS. Key sinh ra chỉ để chạy một lần, không giữ lại quyền truy cập thường trực.
Người dùng nói kiểu:
22 nếu không nói).root, hoặc user có sudo; nếu không rõ → hỏi hoặc thử root)./etc/fstab + tạo/xóa /swapfile) và chờ người dùng đồng ý.ssh-keygen -t ed25519 -N "" -f ~/.ssh/swap_setup_ed25519 -C "swap-setup-single-use"
cat ~/.ssh/swap_setup_ed25519.pub
ssh -i ~/.ssh/swap_setup_ed25519 -o BatchMode=yes -o StrictHostKeyChecking=accept-new -p <PORT> <USER>@<HOST> 'echo CONNECT_OK'
CONNECT_OK → đi tiếp.cat /etc/os-release
uname -m
free -m
swapon --show
cat /proc/swaps
df -h /
id
sudo -n true
fallocate/dd + mkswap.# size tính bằng MB, ví dụ SWAP_MB=2048
sudo fallocate -l ${SWAP_MB}M /swapfile
# nếu fallocate lỗi mới dùng: sudo dd if=/dev/zero of=/swapfile bs=1M count=${SWAP_MB} status=progress
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
swapon --show
free -m
/swapfile đã tồn tại → KHÔNG ghi đè; báo người dùng và đặt tên khác (/swapfile2) hoặc xử lý theo yêu cầu.fallocate; nếu FS không hỗ trợ (một số FS ngoài ext4) → fallback dd./etc/fstab. Phải:
sudo cp /etc/fstab /etc/fstab.bak.$(date +%F-%H%M)/swapfile chưa (tránh trùng):
grep -nE '^[^#]*swap' /etc/fstabecho '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstabsudo findmnt --verify --verbose (hoặc sudo mount -a — lỗi thì DỪNG và khôi phục backup)
sudo swapon -a để chắc chắn nạp lại không lỗi.mount -a báo lỗi → restore fstab.bak ngay, báo người dùng. Sai fstab = máy không boot.vm.swappiness=10 qua /etc/sysctl.d/99-swap.conf, rồi sudo sysctl --system.swapon --show + free -m.rm -f ~/.ssh/swap_setup_ed25519 ~/.ssh/swap_setup_ed25519.pub
free -m sau khi xong), fstab đã validate, key đã thu hồi.| Tình huống | Cách xử lý |
|---|---|
| Kết nối báo Permission denied | Key chưa dán đúng / sai user/port → hướng dẫn lại, kiểm tra panel. |
| VPS không có panel SSH key | Hướng dẫn dán public key qua giao diện web console của panel. |
fallocate lỗi FS | Dùng dd if=/dev/zero of=/swapfile bs=1M count=N status=progress. |
swapon báo đã có swap | Báo người dùng, hỏi muốn tăng hay giữ nguyên. |
mount -a báo lỗi | Restore fstab.bak NGAY; sửa lại cú pháp; validate lại. |
| User không có sudo | Hỏi thông tin admin hoặc dùng sudo có sẵn. |
| Sai tên nhà cung cấp panel | Hỏi lại tên panel để hướng dẫn đúng mục SSH Keys. |
sudo swapoff /swapfile → xóa dòng trong fstab → sudo rm /swapfile.~/.ssh.ssh-keygen -t ed25519 -N "" -f <path> (không passphrase, phục vụ tự động hóa).-o BatchMode=yes để tránh treo; -o StrictHostKeyChecking=accept-new cho lần đầu.fallocate nhanh nhưng một số FS (ZFS, một số XFS) có thể lỗi → dd chậm hơn nhưng chắc.