Tóm tắt nhanh:
- Sshwifty là web-based SSH & Telnet client, cho phép bạn truy cập server từ bất kỳ trình duyệt hiện đại nào, không cần cài thêm SSH client trên máy người dùng.
- Công cụ hỗ trợ deploy dạng binary, Docker container hoặc build từ source, cấu hình bằng file JSON hoặc biến môi trường, dễ tích hợp vào hạ tầng self-hosted, homelab, VPS.
- Sshwifty phù hợp cho sysadmin, devops, homelab và team phân tán cần một điểm truy cập SSH/Telnet tập trung, bảo mật bằng shared key, TLS, Presets và proxy Socks5.
Sshwifty là một Web SSH & Telnet Client được thiết kế để chạy như ứng dụng web, cho phép bạn kết nối tới SSH và Telnet trực tiếp từ trình duyệt, thay vì phải cài từng client riêng lẻ trên mỗi máy trạm. Nó hoạt động như một proxy phía server, chuyển tiếp lưu lượng giữa trình duyệt và server SSH/Telnet đích, trong khi giao diện tương tác là một terminal web.
Với cách tiếp cận này, bạn có thể biến một VPS hoặc máy chủ nội bộ thành “cổng SSH/Telnet trên web”, giúp toàn đội truy cập hạ tầng từ laptop, tablet, thậm chí cả thiết bị bị khoá cài đặt phần mềm. Sshwifty đặc biệt phù hợp cho homelab, môi trường học tập, hoặc doanh nghiệp muốn chuẩn hoá cách truy cập SSH qua một điểm duy nhất và dễ kiểm soát.
Để bắt đầu tìm hiểu sâu hơn, bạn nên bookmark hai nguồn chính:
- GitHub Sshwifty:
https://github.com/nirui/sshwifty– repo chính thức, chứa mã nguồn, hướng dẫn cài đặt, cấu hình, releases và issue để bạn tham khảo thêm. - Demo Sshwifty:
https://sshwifty-demo.nirui.org– trang demo cho phép bạn xem giao diện terminal web và cách kết nối từ trình duyệt.

Kiến trúc cơ bản của Sshwifty
Về mặt kiến trúc, Sshwifty được triển khai như một ứng dụng web phía server: một binary duy nhất (viết bằng Go, kết hợp frontend JavaScript/Vue) lắng nghe HTTP/HTTPS và cung cấp giao diện terminal tới trình duyệt. Toàn bộ logic kết nối SSH/Telnet, định tuyến qua Socks5, xử lý Presets, hooks đều nằm phía server.
Phần cấu hình được quản lý bằng một file JSON hoặc các biến môi trường, giúp bạn:
- Định nghĩa HTTP server (cổng, interface, timeout).
- Thiết lập SharedKey để bảo vệ giao diện web.
- Cấu hình Socks5 proxy, TLS, server-side hooks.
- Tạo Presets cho các host thường dùng, để người dùng chỉ cần chọn từ danh sách.
Ưu điểm so với SSH Client truyền thống
So với việc cài SSH client trên từng máy trạm, Sshwifty mang lại một số lợi ích rõ rệt:
- Người dùng không cần cài phần mềm: chỉ cần trình duyệt hiện đại, mở URL Sshwifty là có thể kết nối.
- Dễ quản lý quyền truy cập: bạn có thể bảo vệ giao diện bằng SharedKey, Presets, proxy, và đặt Sshwifty sau reverse proxy như Nginx hoặc Traefik.
- Hỗ trợ cả SSH và Telnet: hữu ích khi bạn phải quản lý thiết bị legacy, router, switch hoặc các hệ thống cũ chỉ hỗ trợ Telnet.
- Triển khai self-hosted: bạn chủ động hoàn toàn về hạ tầng, có thể chạy trên VPS, server nội bộ, homelab, không phụ thuộc SaaS.
Nếu bạn đang tìm cách chuẩn hoá truy cập SSH/Telnet trong team, đặc biệt là với người dùng không quá quen terminal truyền thống, Sshwifty là một giải pháp hợp lý.
Hướng dẫn cài đặt Sshwifty bằng Docker
Cách đơn giản và được khuyến nghị để chạy Sshwifty là dùng Docker. Dự án cung cấp sẵn image niruix/sshwifty, bạn chỉ cần chạy một lệnh Docker là có ngay một web SSH client. Ví dụ cấu hình cơ bản:
docker run --detach \
--restart unless-stopped \
--publish 8182:8182 \
--name sshwifty \
niruix/sshwifty:latestLệnh trên sẽ khởi tạo container tên sshwifty, lắng nghe trên cổng 8182 của host. Sau khi chạy, bạn chỉ cần truy cập http://SERVER_IP:8182 từ trình duyệt để mở giao diện Sshwifty.
Nếu muốn chỉ cho phép truy cập từ chính máy host (ví dụ để đặt sau reverse proxy Nginx), bạn có thể đổi --publish 8182:8182 thành:
--publish 127.0.0.1:8182:8182Lúc này, chỉ có localhost mới truy cập trực tiếp Sshwifty; người dùng bên ngoài phải đi qua reverse proxy mà bạn cấu hình.
Cài đặt Sshwifty bằng Prebuilt Executable
Ngoài Docker, Sshwifty cũng cung cấp các prebuilt executable cho một số nền tảng trong mục Releases của GitHub. Cách dùng cơ bản:
- Truy cập mục Releases tại:
https://github.com/nirui/sshwifty/releases. - Tải về binary phù hợp nền tảng của bạn (Linux x86_64, ARM…).
- Mark file là executable:
chmod +x ./sshwifty- Chạy trực tiếp:
./sshwiftyPhương án này phù hợp nếu bạn không dùng Docker nhưng vẫn muốn triển khai nhanh một Web SSH client trên server hoặc homelab.
Build Sshwifty từ source cho developer
Nếu bạn là developer hoặc muốn tuỳ biến sâu, bạn có thể build Sshwifty từ source:
git clone https://github.com/nirui/sshwifty
cd sshwifty
npm install
npm run buildSau khi build xong, binary sshwifty sẽ được tạo trong thư mục hiện tại. Dockerfile đi kèm repo cũng mô tả toàn bộ quy trình build, nên nếu gặp lỗi compile, bạn có thể tham chiếu lại Dockerfile để biết chính xác các bước và phiên bản cần thiết.
Việc tự build giúp bạn dễ dàng fork, chỉnh sửa giao diện, hoặc tích hợp Sshwifty vào pipeline CI/CD riêng của team.
Cấu hình Sshwifty bằng file JSON
Một điểm mạnh của Sshwifty là hệ thống cấu hình chi tiết bằng JSON. Ví dụ skeleton file sshwifty.conf.json:
{
"HostName": "localhost",
"SharedKey": "WEB_ACCESS_PASSWORD",
"DialTimeout": 10,
"Socks5": "localhost:1080",
"Servers": [
{
"ListenInterface": "0.0.0.0",
"ListenPort": 8182,
"InitialTimeout": 3,
"ReadTimeout": 60,
"WriteTimeout": 60,
"HeartbeatTimeout": 20,
"ReadDelay": 10,
"WriteDelay": 10,
"TLSCertificateFile": "",
"TLSCertificateKeyFile": "",
"ServerMessage": ""
}
]
}Bạn có thể chỉ định file cấu hình bằng biến môi trường:
SSHWIFTY_CONFIG=./sshwifty.conf.json ./sshwiftyVới cấu hình này, bạn kiểm soát được host, cổng, thời gian timeout, proxy, TLS, và các thông số liên quan đến performance và bảo mật.
Sử dụng presets để đơn giản hoá kết nối
Presets là tính năng cho phép tạo danh sách server “Known remotes” hiển thị sẵn trong giao diện web. Người dùng chỉ cần chọn preset thay vì điền thủ công host, port, user, encoding, phương thức auth. Ví dụ cấu hình cơ bản:
"Presets": [
{
"Title": "SDF.org Unix Shell",
"Type": "SSH",
"Host": "sdf.org:22",
"TabColor": "112233",
"Meta": {
"User": "pre-defined-username",
"Authentication": "Password"
}
}
]Presets rất hữu ích trong môi trường team: bạn định nghĩa sẵn server nội bộ, host staging, production, các thiết bị mạng… để mọi người kết nối đúng nơi, hạn chế việc gõ nhầm địa chỉ hoặc port. Bạn cũng có thể bật chế độ chỉ cho phép kết nối tới Presets (OnlyAllowPresetRemotes) để kiểm soát chặt quyền truy cập.
Bảo mật với SharedKey, TLS và Proxy
Sshwifty cung cấp nhiều lớp bảo mật để bảo vệ giao diện web và luồng dữ liệu:
- SharedKey: yêu cầu người dùng nhập mật khẩu truy cập web UI trước khi thấy màn hình kết nối, tránh việc ai có link cũng vào được.
- TLS: bạn có thể bật HTTPS trực tiếp trên Sshwifty hoặc để reverse proxy xử lý TLS, đảm bảo WebCrypt API hoạt động, mã hoá luồng traffic giữa trình duyệt và Sshwifty.
- Socks5 proxy: định tuyến kết nối SSH/Telnet qua proxy để ẩn server thực hoặc tuân thủ chính sách mạng nội bộ.
- Hooks phía server: cho phép chạy script trước khi kết nối (before_connecting) để thực hiện kiểm tra bổ sung, logging hoặc các quy trình bảo mật riêng.
Trong kịch bản production, bạn nên kết hợp SharedKey, TLS từ reverse proxy và Presets để vừa đảm bảo trải nghiệm người dùng, vừa kiểm soát truy cập.
Cách sử dụng Sshwifty trong quy trình hàng ngày
Sau khi cài đặt xong Sshwifty, quy trình sử dụng cơ bản như sau:
- Truy cập URL Sshwifty từ trình duyệt (ví dụ
https://ssh.example.comnếu đặt sau reverse proxy). - Nhập SharedKey nếu bạn cấu hình, để vào được giao diện chính.
- Chọn giữa SSH hoặc Telnet, nhập host, port, user, phương thức xác thực (password hoặc private key), hoặc đơn giản là chọn một Preset sẵn có.
- Connect, sau đó sử dụng terminal web như một SSH client bình thường: chạy lệnh, xem log, thao tác với hệ thống.
Đối với team devops hoặc homelab, bạn có thể dùng Sshwifty làm điểm vào duy nhất: mỗi người dùng trình duyệt cá nhân, còn server chỉ expose cổng Sshwifty (hoặc reverse proxy) ra ngoài, giúp giảm bề mặt tấn công so với việc mở trực tiếp nhiều cổng SSH.
Một web SSH client gọn nhẹ và dễ tự host
Sshwifty mang lại một cách tiếp cận khác cho việc truy cập SSH/Telnet: thay vì cài client ở khắp nơi, bạn chỉ cần một service web duy nhất, sau đó cho mọi người dùng trình duyệt. Với khả năng deploy bằng Docker, cấu hình chi tiết bằng JSON, hỗ trợ Presets, Socks5, TLS và hooks, Sshwifty phù hợp cho cả homelab, môi trường học tập lẫn team devops nhỏ muốn tự host công cụ của mình.
Nếu bạn đang xây dựng stack self-hosted cho devops hoặc homelab, Sshwifty là một mảnh ghép đáng cân nhắc: nhẹ, không phụ thuộc cơ sở dữ liệu, mã nguồn mở, và giải quyết gọn nhu cầu “Web SSH & Telnet Client” chạy trên hạ tầng của chính bạn.







