SSD Nodes Learn 8GB RAM — $66/năm
Hướng dẫn Matt ConnorBởi Matt Connor · Cập nhật ngày 2026-08-01

Cách chạy Claude Code trên điện thoại qua VPS và tmux

Hướng dẫn chạy Claude Code trên VPS qua kết nối SSH và tmux. Giải pháp dùng mosh để ổn định kết nối khi mạng di động chập chờn và cấu hình terminal giúp bạn code hiệu quả nhất.

Claude Code từ điện thoại: cách thức hoạt động thực tế

Claude Code từ điện thoại không phải là một ứng dụng di động. Claude Code chạy trên một VPS (virtual private server), bên trong một phiên tmux luôn mở, và điện thoại của bạn mở một kết nối SSH (secure shell) tới phiên đó chừng nào bạn còn đang xem nó. Đóng ứng dụng lại và agent vẫn tiếp tục làm việc, vì tiến trình đó chưa bao giờ nằm trên điện thoại.

Sự phân tách đó là toàn bộ thiết kế. Hệ điều hành điện thoại sẽ tạm dừng một ứng dụng chỉ vài giây sau khi bạn chuyển sang ứng dụng khác, vì vậy bất kỳ tác vụ dài nào bắt đầu trên điện thoại đều sẽ dừng lại. Nó cũng nhận một địa chỉ mạng mới mỗi khi bạn chuyển từ wifi sang dữ liệu di động. Cả hai vấn đề này đều được giải quyết khi tiến trình chạy trên server và điện thoại chỉ đóng vai trò hiển thị màn hình.

Bạn cần bốn thứ trên server: tmux để giữ phiên làm việc, SSH keys để truy cập, mosh để xử lý các thay đổi mạng, và bản thân Claude Code. Phía điện thoại chỉ cần một ứng dụng terminal có hàng phím mà bạn có thể thao tác được.

Những gì bạn cần trên VPS

Một VPS Ubuntu 24.04 nhỏ là đủ cho các phần SSH và tmux. Claude Code yêu cầu cấu hình cao hơn. Các yêu cầu chính thức tính đến tháng 7 năm 2026 là Ubuntu 20.04 trở lên trên bộ vi xử lý x64 hoặc ARM64, với RAM từ 4 GB trở lên. Gói 1 GB có thể cài đặt được nhưng tiến trình sẽ bị kernel kết thúc khi chịu tải. Claude Code cũng cần một tài khoản Claude trả phí (Pro, Max, Team hoặc Enterprise) hoặc tài khoản Console có quyền truy cập API, vì gói Claude.ai miễn phí không bao gồm tính năng này.

Hãy thiết lập VPS với một người dùng thông thường có quyền sudo, không dùng tài khoản root. Nếu máy chủ còn mới, hãy thực hiện qua mười phút đầu tiên trên một VPS mới trước, vì các thay đổi SSH sau này trong hướng dẫn này sẽ dễ thực hiện hơn khi người dùng và firewall đã tồn tại.

sudo apt update && sudo apt install -y tmux mosh
curl -fsSL https://claude.ai/install.sh | bash
claude --version

Trình cài đặt đặt file binary tại ~/.local/bin/claude, và claude --version sẽ in ra một dòng như 2.1.211 (Claude Code). Nếu nó in ra command not found, thư mục đó chưa có trong PATH của bạn: hãy đăng xuất, đăng nhập lại, sau đó kiểm tra bằng command -v claude. claude doctor sẽ in ra các chẩn đoán về cài đặt và cấu hình mà không bắt đầu một phiên làm việc.

Hãy đăng nhập một lần ngay bây giờ, từ máy tính xách tay, trước khi bạn phụ thuộc vào điện thoại. Chạy claude trong một thư mục dự án và làm theo prompt đăng nhập. Quy trình này yêu cầu bạn mở một URL trong trình duyệt và mang mã xác thực quay lại terminal, việc thao tác qua lại giữa hai ứng dụng trên màn hình điện thoại sẽ rất chậm. Hãy thực hiện một lần trên bàn phím thật và thông tin xác thực sẽ được lưu lại trên máy chủ.

Khởi chạy Claude Code bên trong tmux để tránh bị ngắt kết nối

tmux new -s claude
cd ~/projects/api
claude

Ngắt kết nối (detach) bằng Ctrl-b rồi nhấn d. tmux sẽ in ra [detached (from session claude)] và trả lại quyền điều khiển shell cho bạn. Bây giờ bạn có thể đóng ứng dụng, mất sóng hoặc cất điện thoại vào túi. Pane đó vẫn tiếp tục chạy.

tmux ls
tmux attach -t claude

tmux ls in ra mỗi dòng một session, ví dụ như claude: 1 windows (created Thu Jul 30 09:14:02 2026). tmux attach -t claude đưa bạn trở lại chính xác vị trí cũ, bao gồm cả các chỉnh sửa đang thực hiện dở dang.

Cách này hiệu quả vì tmux chạy một tiến trình server riêng, còn shell và Claude Code của bạn là tiến trình con của server đó chứ không phải của sshd. Khi kết nối SSH kết thúc, kernel gửi tín hiệu ngắt (hangup signal) SIGHUP tới các tiến trình gắn với kết nối đó, và server tmux không nằm trong số này. Nếu không có tmux, việc khóa màn hình làm mất kết nối cũng sẽ dừng Claude Code ngay giữa lúc đang gọi tool. Chạy Claude Code trên VPS bên trong tmux đề cập chi tiết hơn về cách bố trí session.

Chạy tmux trên server, không bao giờ chạy trên điện thoại. Gõ tmux bên trong một session mà bạn đã attach sẽ in ra sessions should be nested with care, unset $TMUX to force, và nếu ép buộc chạy thì bạn sẽ có hai phím prefix tranh chấp lẫn nhau.

Tự động attach mỗi khi đăng nhập

Việc gõ lệnh attach trên bàn phím cảm ứng rất bất tiện. Hãy thêm nội dung này vào cuối tệp ~/.profile trên server:

if command -v tmux >/dev/null 2>&1 && [ -z "$TMUX" ] && [ -t 1 ]; then
  exec tmux new-session -A -s claude
fi

new-session -A -s claude sẽ attach vào session có tên claude nếu nó tồn tại, hoặc tạo mới nếu chưa có, vì vậy một lệnh này xử lý được cả hai trường hợp. exec thay thế login shell bằng tmux, do đó khi thoát tmux, kết nối sẽ đóng lại thay vì đưa bạn về một prompt trống. Khi bạn cần một shell thông thường, hãy bỏ qua tệp này: ssh you@server -t "bash --noprofile".

Hãy đặt nó vào ~/.profile chứ không phải ~/.bashrc. ~/.bashrc cũng chạy cho các session không tương tác (non-interactive), dẫn đến việc truyền tệp bị lỗi: scpsftp đọc dữ liệu đầu ra không mong muốn như là dữ liệu giao thức và thất bại với lỗi Received message too long. ~/.profile chỉ chạy cho các login shell, đây chính là loại session của SSH tương tác.

~/.profile cũng là nơi Ubuntu thêm ~/.local/bin vào PATH. Nếu claude hoạt động bình thường ngay sau khi đăng nhập nhưng shell bên trong tmux báo command not found, thì nguyên nhân là do thứ tự này, vì vậy hãy khởi chạy tmux từ một login shell như trên thay vì từ một script bỏ qua profile.

Cả hai ứng dụng đều hỗ trợ SSH và mosh, đồng thời lưu trữ các key ngay trong ứng dụng. Điểm khác biệt nằm ở giao diện.

Blink Shell vận hành theo kiểu dòng lệnh. Tại prompt, bạn nhập ssh you@server hoặc mosh you@server, sử dụng cú pháp tương tự như terminal trên máy tính để bàn. Bạn mở phần cài đặt bằng cách nhập config, và mục Keys sẽ tạo một cặp key cho bạn.

Termius vận hành theo kiểu biểu mẫu. Bạn điền thông tin host, sau đó chuyển đổi host đó từ SSH sang Mosh trong phần chi tiết host. Termius phát hành bản cài đặt mosh riêng và hỗ trợ mosh 1.3.0 trở lên, vì vậy server vẫn cần cài đặt gói mosh.

Hãy tạo key bên trong ứng dụng cho cả hai trường hợp, và tuyệt đối không sao chép private key hiện có vào điện thoại. Ứng dụng sẽ hiển thị cho bạn phần public key, đây là dòng duy nhất bạn cần thêm vào ~/.ssh/authorized_keys trên server. SSH key cho từng thiết bị và cách thu hồi bao gồm các hướng dẫn về đặt tên và bước thu hồi, điều này quan trọng đối với điện thoại hơn là laptop.

Hãy bật tính năng khóa bằng sinh trắc học hoặc mật mã của chính ứng dụng terminal. Nếu không, một chiếc điện thoại đã mở khóa sẽ trở thành một shell mở truy cập vào server của bạn chừng nào màn hình còn sáng.

Android: Termux

pkg upgrade
pkg install openssh mosh
ssh-keygen -t ed25519 -C "pixel"
cat ~/.ssh/id_ed25519.pub

Termux đóng gói OpenSSH và mosh trong kho lưu trữ riêng, vì vậy ssh, ssh-keygenmosh hoạt động giống như trên máy tính để bàn. Thêm dòng public key đã in vào ~/.ssh/authorized_keys trên server, sau đó kết nối bằng mosh you@server.

Bàn phím ảo trên Android không có phím Esc và phím Ctrl, trong khi Claude Code cần cả hai. Termux có thể hiển thị hàng phím riêng. Thêm một dòng vào ~/.termux/termux.properties:

extra-keys = [['ESC','|','/','HOME','UP','END','PGUP'],['TAB','CTRL','ALT','LEFT','DOWN','RIGHT','PGDN']]

Sau đó chạy termux-reload-settings và hàng phím sẽ xuất hiện phía trên bàn phím. Thao tác reload tương tự cũng áp dụng font chữ monospace TrueType được đặt tại ~/.termux/font.ttf.

Android có thể dừng Termux khi ứng dụng chạy ngầm, nhưng điều này không gây ảnh hưởng gì ngoài việc bạn phải kết nối lại. Phiên làm việc và agent đều nằm trên server.

Tại sao terminal bị treo khi tôi rời khỏi wifi, và mosh giải quyết vấn đề gì?

Kết nối SSH là một kết nối TCP (transmission control protocol), và một kết nối TCP được xác định bởi cả hai địa chỉ và cả hai cổng. Khi bạn đi ra khỏi phạm vi wifi, điện thoại nhận một địa chỉ mới từ mạng di động, vì vậy kết nối cũ không còn khớp với bất kỳ đầu nào nữa. Không có thông báo nào cho việc này. Terminal đơn giản là ngừng phản hồi cho đến khi TCP từ bỏ, và sau đó ssh in ra client_loop: send disconnect: Broken pipe. Để ngắt ngay một phiên bị treo, nhấn Enter, sau đó ~, rồi ..

mosh (mobile shell) loại bỏ chế độ lỗi đó. Nó sử dụng SSH một lần để đăng nhập và khởi chạy tiến trình mosh-server, đọc lại cổng UDP (user datagram protocol) mà máy chủ đã chọn, và đóng kết nối SSH. Sau đó, hai bên trao đổi các datagram UDP được xác thực bằng một khóa phiên dùng chung, vì vậy phiên làm việc được xác định bởi khóa đó chứ không phải bởi địa chỉ của bạn. Một địa chỉ mới chỉ cần tiếp tục công việc. mosh cũng hiển thị phản hồi phím gõ của bạn tại chỗ và vẽ lại màn hình khi máy chủ không đồng bộ, đó là lý do tại sao nó vẫn có thể sử dụng được trên kết nối di động chậm.

mosh sử dụng một cổng UDP trong khoảng từ 60000 đến 61000, vì vậy hãy mở dải cổng đó:

sudo ufw allow 60000:61000/udp
sudo ufw status

Mở các cổng bằng ufw có phần còn lại của bức tranh về tường lửa. Nếu nhà cung cấp của bạn cung cấp một tường lửa mạng riêng biệt trong bảng điều khiển, hãy thêm cùng dải cổng đó vào đó, vì quy tắc ufw không thể ảnh hưởng đến bộ lọc nằm phía trước máy chủ.

Hai lỗi mosh thường gặp. Một lần đăng nhập thành công nhưng sau đó bị treo, hiển thị Nothing received from server on UDP port 60001., nghĩa là dải UDP đó bị chặn ở đâu đó giữa điện thoại và máy chủ. Một kết nối báo lỗi mosh-server not found nghĩa là gói phần mềm bị thiếu trên máy chủ hoặc không có trong PATH đăng nhập. Hãy cài đặt nó, hoặc trỏ trực tiếp đến nó bằng mosh --server=/usr/bin/mosh-server you@server.

mosh cũng từ chối chạy khi locale đăng nhập không phải là UTF-8, và sẽ thông báo: mosh-server needs a UTF-8 native locale to run. Hãy sửa locale trên máy chủ, không phải trên điện thoại.

locale
sudo locale-gen en_US.UTF-8
sudo update-locale LANG=en_US.UTF-8

Có hai việc mosh không làm được. README của nó nêu rõ rằng mosh không hỗ trợ X forwarding hoặc các mục đích sử dụng không tương tác của SSH, bao gồm cả port forwarding, vì vậy việc xem trước một ứng dụng web mà Claude Code vừa khởi chạy vẫn cần dùng ssh -L 8080:127.0.0.1:8080 you@server thông thường. Nó cũng chỉ đồng bộ hóa màn hình hiển thị, vì vậy nó không có tính năng cuộn ngược (scrollback) riêng. Giới hạn thứ hai đó không gây ảnh hưởng ở đây, vì tmux giữ lại phần cuộn ngược: Ctrl-b sau đó [ để vào chế độ sao chép, kéo chuột hoặc dùng các phím mũi tên để cuộn, và q để thoát.

Làm cho màn hình điện thoại trở nên khả dụng

Bốn dòng trong ~/.tmux.conf trên server thực hiện hầu hết công việc:

set -g mouse on
set -g status-position top
set -g default-terminal "tmux-256color"
set -g history-limit 20000

mouse on chuyển thao tác kéo cảm ứng thành cuộn và thao tác chạm thành chọn pane hoặc cửa sổ, thay thế hầu hết các phím prefix vốn khó gõ. status-position top di chuyển dòng trạng thái của tmux ra khỏi cạnh dưới, nơi bàn phím ảo và thanh gợi ý của nó thường che mất. default-terminal quan trọng vì nếu không có nó, tmux sẽ thông báo một terminal screen cho Claude Code, khiến màu sắc và các đường kẻ khung hiển thị kém hơn mức cần thiết. Nếu tmux từ chối khởi động với missing or unsuitable terminal: tmux-256color, nghĩa là entry terminfo bị thiếu: sudo apt install ncurses-term.

Chỉ cần học bốn phím là phần còn lại sẽ trở nên thoải mái.

  • Esc ngắt Claude giữa chừng khi đang phản hồi và giữ lại công việc đã hoàn thành, vì vậy đây là phím bạn muốn đặt gần ngón cái nhất.
  • Ctrl+C cũng ngắt một thao tác đang chạy. Tại prompt đang rảnh, nhấn lần đầu sẽ xóa nội dung nhập và nhấn lần thứ hai sẽ thoát Claude Code, vì vậy đây là công cụ mạnh tay hơn.
  • Esc nhấn hai lần sẽ xóa một prompt nháp, và tại một prompt trống, nó sẽ mở menu rewind thay thế.
  • Đối với prompt nhiều dòng, hãy gõ \ rồi nhấn Enter. Định dạng đó hoạt động trên mọi terminal. Shift+Enter chỉ hoạt động tự nhiên trên một danh sách ngắn các terminal máy tính để bàn, và các client di động không nằm trong danh sách đó.

Tránh chia pane. Điện thoại ở chế độ dọc chỉ rộng khoảng 40 cột, vì vậy chia dọc sẽ để lại 20 cột mỗi pane và mọi diff sẽ bị xuống dòng gây nhiễu. Hãy sử dụng các cửa sổ tmux thay thế: Ctrl-b c tạo một cửa sổ mới và Ctrl-b n chuyển sang cửa sổ tiếp theo. Hãy xoay ngang điện thoại khi bạn cần đọc diff một cách chính xác.

Một phiên làm việc dài trên màn hình nhỏ chủ yếu là vấn đề về ngữ cảnh, vì vậy quản lý cửa sổ ngữ cảnh Claude Code là nội dung đáng đọc trước khi bạn thử làm việc cả ngày trên tàu.

Khóa hệ thống: chỉ dùng key, không dùng mật khẩu

Điện thoại của bạn hiện đang giữ một key để truy cập vào máy chủ dùng để chỉnh sửa code và chạy lệnh. Hãy tắt xác thực bằng mật khẩu. Sử dụng file cấu hình bổ sung (drop-in file) an toàn hơn so với việc chỉnh sửa trực tiếp sshd_config, vì sshd_config trên Ubuntu bao gồm /etc/ssh/sshd_config.d/*.conf ở đầu file và giá trị đầu tiên tìm thấy cho một thiết lập sẽ được ưu tiên sử dụng.

sudo tee /etc/ssh/sshd_config.d/99-phone.conf >/dev/null <<'EOF'
PasswordAuthentication no
KbdInteractiveAuthentication no
PubkeyAuthentication yes
PermitRootLogin no
EOF
sudo sshd -t && sudo systemctl reload ssh

sshd -t sẽ phân tích cú pháp cấu hình và không in ra gì nếu cấu hình hợp lệ. Nếu bỏ qua bước này, chỉ cần một lỗi đánh máy cũng khiến sshd thất bại khi reload. Hãy giữ phiên làm việc hiện tại và kiểm tra từ một kết nối thứ hai trước khi đóng bất kỳ thứ gì, vì một key sai lúc này sẽ dẫn đến lỗi Permission denied (publickey). và khi đã tắt mật khẩu, bạn sẽ không còn phương án dự phòng. Lúc đó, cách khôi phục duy nhất là sử dụng console của nhà cung cấp VPS.

Hãy cấp cho mỗi thiết bị một key riêng. Nếu mất điện thoại, bạn chỉ cần xóa một dòng trong ~/.ssh/authorized_keys và laptop của bạn vẫn hoạt động bình thường. Việc dùng chung một key đồng nghĩa với việc bạn phải thay đổi key trên tất cả các thiết bị đang sở hữu.

Nếu bạn chuyển SSH sang một port khác trên Ubuntu 24.04, hãy lưu ý rằng trình lắng nghe (listener) thuộc về ssh.socket, vì vậy chỉ riêng một dòng Port sẽ không thay đổi được gì. Hãy chạy sudo systemctl edit ssh.socket, xóa cấu hình mặc định bằng một dòng ListenStream= trống, sau đó thiết lập port của bạn ở dòng tiếp theo. Tăng cường bảo mật SSH trên VPS bao gồm nội dung đó và các phần còn lại của bề mặt tấn công.

fail2ban cho SSH không tăng thêm nhiều bảo mật khi đã tắt mật khẩu, vì mật khẩu bị đoán mò sẽ không bao giờ được chấp nhận. Lợi ích thực sự là giúp log sạch hơn, giúp bạn dễ dàng phát hiện các nỗ lực đăng nhập thực tế.

Lựa chọn mạnh mẽ hơn là giữ cho SSH không hiển thị trên internet công cộng. Hãy đặt máy chủ phía sau một VPN WireGuard do bạn tự host, bật tunnel trên điện thoại khi cần và cấu hình sshd với ListenAddress chỉ trên tunnel đó. mosh hoạt động tốt qua tunnel vì cả hai phía đều dùng UDP. Một lưu ý nhỏ: tunnel làm tăng overhead của gói tin, vì vậy nếu các lần truyền dữ liệu lớn bị treo, hãy giảm MTU (maximum transmission unit) trong cấu hình WireGuard trên điện thoại.

Một điểm cuối cùng khi làm việc theo cách này. Từ điện thoại, bạn sẽ phê duyệt các yêu cầu quyền trên màn hình chỉ hiển thị vài dòng diff mỗi lần. Đó là lý do nên giữ lại các rào chắn bảo mật thay vì tắt chúng đi. Chạy Claude Code an toàn trên VPS bao gồm các giới hạn về người dùng và thư mục cần thiết lập trước khi phương thức truy cập chính của bạn trở thành màn hình cảm ứng.

Khi bạn reattach và có lỗi xảy ra

tmux attach in ra no server running on /tmp/tmux-1000/default nghĩa là tmux server đã mất, điều này gần như luôn đồng nghĩa với việc máy vừa reboot. Hãy kiểm tra bằng uptime. Các bản cập nhật kernel từ cập nhật bảo mật tự động sẽ reboot máy, và một máy vừa reboot sẽ không còn session tmux nào, vì vậy hãy coi bất kỳ tiến trình Claude Code nào là thứ bạn có thể khởi động lại.

can't find session: claude thì khác. Tmux server vẫn đang chạy nhưng tên đó không tồn tại. tmux ls sẽ hiển thị những gì đang thực sự tồn tại.

Nếu bạn attach và thấy một shell prompt trống trơn tại nơi Claude Code từng chạy, nghĩa là tiến trình đã kết thúc mà không đóng session. Hãy kiểm tra dmesg -T | tail để tìm dòng như Out of memory: Killed process 4821 (claude), đây là hiện tượng xảy ra trên các máy có dung lượng dưới 4 GB khi thực hiện chỉnh sửa lớn. Nếu không thấy dòng này, nghĩa là Claude Code đã tự thoát, và phần scrollback của shell phía trên prompt sẽ chứa lý do.

Một cửa sổ khi quay lại bị thu nhỏ, với khoảng trống xung quanh, nghĩa là có hai client đang attach với kích thước khác nhau, vì tmux sẽ điều chỉnh kích thước cửa sổ theo client nhỏ nhất. Laptop của bạn vẫn đang giữ session ở độ rộng 200 cột trong khi điện thoại yêu cầu 40. Hãy detach các client khác khi bạn attach: tmux attach -d -t claude.

FAQ

Tôi có thể chạy Claude Code trực tiếp trên điện thoại thay vì trên VPS không?

Không. Các nền tảng được hỗ trợ tính đến tháng 7 năm 2026 là macOS, Windows, Ubuntu 20.04 trở lên, Debian 10 trở lên và Alpine 3.19 trở lên, với RAM từ 4 GB trở lên. Android và iOS không nằm trong danh sách này. Điện thoại cũng thường xuyên đưa ứng dụng vào chế độ ngủ và thay đổi địa chỉ mạng liên tục, điều mà một tác vụ agent chạy dài hạn không thể chịu đựng được. Hãy chạy nó trên server và sử dụng điện thoại làm màn hình hiển thị.

Phiên làm việc có duy trì nếu tôi đóng ứng dụng hoặc mất tín hiệu không?

Có, và có hai thành phần riêng biệt thực hiện công việc đó. tmux giữ cho tiến trình chạy trên server, vì vậy không có gì bị ngắt khi kết nối kết thúc. mosh giữ cho chính kết nối đó tồn tại ngay cả khi thay đổi địa chỉ, vì vậy việc chuyển từ wifi sang dữ liệu di động thậm chí không khiến bạn phải kết nối lại. Với SSH thông thường mà không có tmux, một kết nối bị ngắt sẽ gửi tín hiệu SIGHUP và Claude Code sẽ dừng lại giữa chừng.

Tại sao mosh kết nối được nhưng không hiển thị gì cả?

Việc đăng nhập thành công nhưng sau đó bị treo với Nothing received from server on UDP port 60001. nghĩa là dải cổng UDP từ 60000 đến 61000 chưa được mở. Hãy thêm dải cổng này vào ufw, và thêm một lần nữa vào firewall mạng của nhà cung cấp, đây là một bảng điều khiển riêng biệt trên hầu hết các giao diện quản trị. Nếu mosh báo lỗi rằng mosh-server không được tìm thấy, server của bạn đang thiếu gói này: sudo apt install mosh.

Làm thế nào để ngắt Claude Code từ bàn phím không có phím Esc?

Hãy thêm một hàng phím chức năng. Termux cho phép cấu hình hàng phím này bằng extra-keys trong ~/.termux/termux.properties, còn Termius và Blink đều cung cấp sẵn một hàng phím mà bạn có thể chỉnh sửa trong phần cài đặt. Esc sẽ ngắt phản hồi đang chạy và giữ lại công việc đã hoàn thành. Ctrl+C cũng có tác dụng ngắt, nhưng nếu nhấn hai lần tại dấu nhắc lệnh đang rảnh, nó sẽ thoát khỏi Claude Code, vì vậy hãy ưu tiên dùng Esc trước.

Việc mở SSH ra internet có đủ an toàn cho việc này không?

Khi đã tắt xác thực bằng mật khẩu, thông tin xác thực duy nhất có thể thành công là một key không bao giờ rời khỏi thiết bị của bạn, đây là mức rủi ro chấp nhận được đối với một máy chủ mà bạn có thể cài đặt lại bất cứ lúc nào. Hãy cấp cho mỗi thiết bị một key riêng để nếu mất điện thoại, bạn chỉ cần xóa một dòng trong authorized_keys. Nếu bạn không muốn mở cổng trên internet công cộng, hãy đặt server phía sau WireGuard và để sshd lắng nghe trên địa chỉ tunnel.