Phone-இலிருந்து Claude Code பயன்படுத்துவது எப்படி
Claude Code VPS-இல் tmux session-க்குள் இயங்கும்; phone பார்வைக்கான window மட்டுமே. SSH keys, மாறும் mobile data-க்கு mosh, tmux attach, keyboard fixes ஆகியவற்றை அறிக.
உங்கள் phone-இலிருந்து Claude Code: இது உண்மையில் எவ்வாறு செயல்படுகிறது
உங்கள் phone-இலிருந்து Claude Code பயன்படுத்துவது ஒரு mobile app அல்ல. Claude Code ஒரு VPS (virtual private server)-இல், தொடர்ந்து திறந்திருக்கும் tmux session-க்குள் இயங்குகிறது. உங்கள் phone, அந்த session-க்கு SSH (secure shell) connection-ஐ நீங்கள் அதை பார்க்கும் வரையில் திறந்து வைத்திருக்கும். நீங்கள் app-ஐ மூடியாலும் agent தொடர்ந்து செயல்படும். காரணம், அந்த process phone-இல் இயங்கவில்லை.
இந்தப் பிரிப்பே முழு வடிவமைப்பின் அடிப்படை. நீங்கள் app-இலிருந்து வேறு இடத்துக்கு மாறிய சில விநாடிகளுக்குப் பிறகு, phone operating system அந்த app-ஐ suspend செய்கிறது. எனவே phone-இல் தொடங்கிய நீண்ட நேரப் பணி நிறுத்தப்படும். மேலும், wifi-யிலிருந்து mobile data-க்கு நகரும் ஒவ்வொரு முறையும் phone-க்கு புதிய network address கிடைக்கும். Process server-இல் இயங்குவதால், phone screen-ஐ மட்டும் காட்டும் சாதனமாக இருப்பதால், இந்த இரண்டு பிரச்சினைகளும் நீங்குகின்றன.
Server-இல் உங்களுக்கு நான்கு விஷயங்கள் தேவை: session-ஐ வைத்திருக்க tmux, அணுகுவதற்கு SSH keys, network மாற்றங்களைக் கையாள mosh, மற்றும் Claude Code. Phone பக்கத்தில், key row-ஐ அணுகக்கூடிய ஒரு terminal app மட்டும் தேவை.
VPS-ல் தேவையானவை
SSH மற்றும் tmux பகுதிகளுக்கு சிறிய Ubuntu 24.04 server போதுமானது. Claude Code-க்கு அதிக வளங்கள் தேவை. July 2026 நிலவரப்படி அதிகாரப்பூர்வ தேவைகள்: x64 அல்லது ARM64 processor கொண்ட Ubuntu 20.04 அல்லது அதற்குப் பிந்தைய பதிப்பு, மேலும் 4 GB அல்லது அதற்கு மேற்பட்ட RAM. 1 GB plan இதை install செய்யும்; ஆனால் load அதிகரிக்கும்போது kernel அந்த process-ஐ நிறுத்திவிடும். Claude Code-க்கு paid Claude account (Pro, Max, Team அல்லது Enterprise) அல்லது API access கொண்ட Console account தேவை. இலவச Claude.ai plan-ல் இது சேர்க்கப்படவில்லை.
server-ஐ root ஆக அல்லாமல், sudo உரிமையுள்ள சாதாரண user ஆக அமைக்கவும். server புதியதாக இருந்தால், முதலில் புதிய VPS-ல் முதல் பத்து நிமிடங்கள் வழிகாட்டியைப் பின்பற்றவும். இந்த வழிகாட்டியில் பின்னர் செய்யப்படும் SSH மாற்றங்கள், user மற்றும் firewall ஏற்கனவே அமைக்கப்பட்ட பிறகு எளிதாக இருக்கும்.
sudo apt update && sudo apt install -y tmux mosh
curl -fsSL https://claude.ai/install.sh | bash
claude --versioninstaller binary-ஐ ~/.local/bin/claude-ல் வைக்கும். claude --version இயக்கினால் 2.1.211 (Claude Code) போன்ற ஒரு வரி காட்டப்படும். command not found காட்டப்பட்டால், அந்த directory இன்னும் உங்கள் PATH-ல் இல்லை. logout செய்து மீண்டும் login செய்யவும். பின்னர் command -v claude மூலம் சரிபார்க்கவும். claude doctor session-ஐ தொடங்காமல் installation மற்றும் settings diagnostics-ஐ காட்டும்.
இப்போது laptop-இலிருந்து ஒருமுறை login செய்யவும். பின்னர் phone-ஐ நம்பி பயன்படுத்தலாம். ஒரு project directory-ல் claude இயக்கி, login prompt-ஐப் பின்பற்றவும். இந்த செயல்முறை browser-ல் ஒரு URL-ஐத் திறந்து, அங்கு கிடைக்கும் code-ஐ terminal-க்கு மீண்டும் உள்ளிடச் சொல்கிறது. இதை phone screen-ல் இரண்டு apps-க்கு இடையே மாற்றிச் செய்வது மெதுவாக இருக்கும். உண்மையான keyboard-ல் இதை ஒருமுறை செய்து முடிக்கவும். Credentials server-ல் சேமிக்கப்பட்டிருக்கும்.
இணைப்பு துண்டிக்கப்பட்டாலும் Claude Code நிறுத்தப்படாமல் இருக்க அதை tmux-க்குள் தொடங்கவும்
tmux new -s claude
cd ~/projects/api
claudeCtrl-b மூலம் detach செய்து, பின்னர் d ஐ இயக்கவும். tmux [detached (from session claude)] ஐ அச்சிட்டு, shell-ஐ மீண்டும் உங்களிடம் வழங்கும். இப்போது app-ஐ மூடலாம், signal-ஐ இழக்கலாம் அல்லது phone-ஐ பையில் வைக்கலாம். Pane தொடர்ந்து இயங்கும்.
tmux ls
tmux attach -t claudetmux ls ஒவ்வொரு session-க்கும் ஒரு வரியை அச்சிடும்; எடுத்துக்காட்டாக claude: 1 windows (created Thu Jul 30 09:14:02 2026). tmux attach -t claude நீங்கள் விட்டுச் சென்ற அதே இடத்திற்குத் திரும்பச் செய்கிறது. பாதியில் முடிக்கப்படாத edit உட்பட அனைத்தும் அப்படியே இருக்கும்.
இது செயல்படுவதற்குக் காரணம், tmux தனக்கென server process ஒன்றை இயக்குவதுதான். உங்கள் shell மற்றும் Claude Code ஆகியவை sshd இன் children ஆக இல்லாமல், அந்த server-ன் children ஆக இயங்குகின்றன. SSH connection முடிவடைந்ததும், kernel அந்த connection-க்கு இணைக்கப்பட்ட processes-க்கு hangup signal, SIGHUP, அனுப்பும். tmux server அவற்றில் ஒன்றாக இருக்காது. tmux இல்லாமல், connection-ஐ துண்டிக்கும் அதே screen lock, tool call நடுவில் Claude Code-ஐ நிறுத்திவிடும். VPS-ல் tmux-க்குள் Claude Code-ஐ இயக்குதல் பகுதியில் session layout மேலும் விரிவாக விளக்கப்பட்டுள்ளது.
tmux-ஐ server-ல் இயக்கவும்; phone-ல் ஒருபோதும் இயக்க வேண்டாம். ஏற்கனவே இணைக்கப்பட்டுள்ள session-க்குள் tmux என type செய்தால் sessions should be nested with care, unset $TMUX to force அச்சிடப்படும். அதை force செய்தால், போட்டியிடும் இரண்டு prefix keys உங்களிடம் இருக்கும்.
ஒவ்வொரு login-லும் தானாக attach செய்யவும்
touch keyboard-ல் attach command-ஐ தட்டச்சு செய்வது சிரமமாகிவிடும். Server-ல் ~/.profile-ன் முடிவில் இதைச் சேர்க்கவும்:
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, claude என்ற பெயருடைய session-க்கு attach செய்கிறது; அது இல்லாவிட்டால் அதை உருவாக்குகிறது. எனவே இரண்டு நிலைகளையும் ஒரே command கையாள்கிறது. exec login shell-ஐ tmux மூலம் மாற்றுகிறது. அதனால் tmux-இல் இருந்து வெளியேறும்போது bare prompt-க்கு செல்லாமல் connection மூடப்படும். Plain shell தேவைப்பட்டால், file-ஐ தவிர்த்து: ssh you@server -t "bash --noprofile".
இதனை ~/.profile-ல் சேர்க்கவும்; ~/.bashrc-ல் சேர்க்க வேண்டாம். ~/.bashrc non-interactive sessions-க்கும் இயங்குகிறது. அதனால் file transfers பாதிக்கப்படும்: scp மற்றும் sftp எதிர்பாராத output-ஐ protocol data எனப் படித்து, Received message too long உடன் தோல்வியடையும். ~/.profile login shells-க்கு மட்டும் இயங்குகிறது. Interactive SSH session-க்கு இதுவே பொருத்தமானது.
Ubuntu, ~/.profile-ல் ~/.local/bin-ஐ PATH-க்கு சேர்க்கிறது. Login செய்த உடனே claude வேலைசெய்தாலும், tmux-க்குள் இருக்கும் shell command not found என்று காட்டினால், அந்த வரிசையே காரணம். எனவே profile-ஐ தவிர்க்கும் script-லிருந்து அல்லாமல், மேலே காட்டியபடி login shell-லிருந்து tmux-ஐத் தொடங்கவும்.
iOS: Termius அல்லது Blink Shell
இரண்டு apps-களும் SSH மற்றும் mosh-ஐ ஆதரிக்கின்றன. இரண்டு apps-களும் keys-ஐ app-க்குள் சேமிக்கின்றன. வேறுபாடு interface-இல் உள்ளது.
Blink Shell command மூலம் இயக்கப்படுகிறது. அதன் prompt-இல் desktop terminal-இல் பயன்படுத்தும் அதே syntax-ஐப் பயன்படுத்தி ssh you@server அல்லது mosh you@server என type செய்யலாம். config என type செய்தால் Settings திறக்கும். Keys section உங்களுக்காக ஒரு pair-ஐ உருவாக்கும்.
Termius form மூலம் இயக்கப்படுகிறது. முதலில் host entry-ஐ நிரப்பவும். பின்னர் host details-இல் அந்த host-ஐ SSH-இலிருந்து Mosh-க்கு மாற்றவும். Termius தனது சொந்த mosh implementation-ஐ வழங்குகிறது. இது mosh 1.3.0 மற்றும் அதற்குப் பிந்தைய versions-ஐ ஆதரிக்கிறது. எனவே server-இல் mosh package நிறுவப்பட்டிருக்க வேண்டும்.
இரண்டு நிலைகளிலும் key-ஐ app-க்குள் உருவாக்கவும். ஏற்கனவே உள்ள private key-ஐ phone-க்கு ஒருபோதும் copy செய்ய வேண்டாம். App உங்களுக்கு public half-ஐக் காட்டும். Server-இல் உள்ள ~/.ssh/authorized_keys-க்கு சேர்க்க வேண்டியது அந்த ஒரே line மட்டுமே. ஒவ்வொரு device-க்கும் SSH keys மற்றும் ஒன்றை revoke செய்வது என்பதில் naming மற்றும் revoke படிகள் விளக்கப்பட்டுள்ளன. Laptop-ஐவிட phone-க்கு இவை மிகவும் முக்கியமானவை.
Terminal app-இன் சொந்த biometric அல்லது passcode lock-ஐ இயக்கவும். அது இல்லையெனில், screen விழித்திருக்கும் காலம் முழுவதும் unlocked phone உங்கள் server-இல் திறந்த shell ஆக இருக்கும்.
Android: Termux
pkg upgrade
pkg install openssh mosh
ssh-keygen -t ed25519 -C "pixel"
cat ~/.ssh/id_ed25519.pubTermux தனது சொந்த repository-யில் OpenSSH மற்றும் mosh-ஐ package செய்கிறது. எனவே ssh, ssh-keygen மற்றும் mosh ஆகியவை desktop-ல் செயல்படுவது போலவே செயல்படும். அச்சிடப்பட்ட public key வரியை server-இல் உள்ள ~/.ssh/authorized_keys-க்கு சேர்க்கவும். பின்னர் mosh you@server மூலம் connect செய்யவும்.
Android-இன் on-screen keyboard-ல் Esc key மற்றும் Ctrl key இல்லை. Claude Code-க்கு இரண்டும் தேவை. Termux தனது சொந்த key row-ஐ காட்ட முடியும். ~/.termux/termux.properties-ல் ஒரு வரியைச் சேர்க்கவும்:
extra-keys = [['ESC','|','/','HOME','UP','END','PGUP'],['TAB','CTRL','ALT','LEFT','DOWN','RIGHT','PGDN']]பின்னர் termux-reload-settings-ஐ இயக்கவும். Keyboard-க்கு மேலே அந்த row தோன்றும். அதே reload செயல்முறை, ~/.termux/font.ttf-ல் வைக்கப்பட்ட monospace TrueType font-ஐயும் ஏற்றுக்கொள்ளும்.
Termux background-ல் இருக்கும்போது Android அதை நிறுத்தக்கூடும். இங்கு அதனால் ஏற்படும் பாதிப்பு reconnect செய்வது மட்டுமே. Session மற்றும் agent server-இல் இயங்குகின்றன.
wifi-யை விட்டு வெளியேறும்போது terminal ஏன் உறைகிறது, mosh அதை எவ்வாறு சரிசெய்கிறது?
SSH connection என்பது TCP (transmission control protocol) connection ஆகும். TCP connection இரு addresses மற்றும் இரு ports ஆகியவற்றால் அடையாளப்படுத்தப்படுகிறது. wifi வரம்பை விட்டு வெளியேறும்போது, phone-க்கு mobile network-இலிருந்து புதிய address கிடைக்கிறது. அதனால் பழைய connection எந்த முனையுடனும் பொருந்தாது. இதை அறிவிக்கும் எந்தச் செய்தியும் வராது. TCP கைவிடும் வரை terminal பதிலளிக்காமல் இருக்கும். அதன் பிறகு ssh client_loop: send disconnect: Broken pipe என்று காட்டும். உறைந்த session-ஐ உடனடியாக நிறுத்த, முதலில் Enter, பின்னர் ~, அதன் பிறகு . என்பதை அழுத்தவும்.
mosh (mobile shell) இந்தச் சிக்கலைத் தவிர்க்கிறது. இது ஒருமுறை SSH-ஐப் பயன்படுத்தி login செய்து mosh-server process-ஐத் தொடங்குகிறது. Server தேர்ந்தெடுத்த UDP (user datagram protocol) port-ஐப் பெற்றுக்கொண்டு, SSH connection-ஐ மூடுகிறது. அதன் பிறகு இரு முனைகளும் shared session key மூலம் authenticated UDP datagrams-ஐ பரிமாறிக்கொள்கின்றன. ஆகவே session உங்கள் address மூலம் அல்ல, அந்த key மூலம் அடையாளப்படுத்தப்படுகிறது. புதிய address கிடைத்தாலும் session தொடரும். mosh உங்கள் typing-ஐ local-ஆகவும் காட்டுகிறது. Server வேறுபட்ட நிலையை அனுப்பும்போது screen-ஐ மீண்டும் வரைகிறது. அதனால் மெதுவான mobile link-ல்கூட இது பயன்படுத்தக்கூடியதாக இருக்கும்.
mosh 60000 மற்றும் 61000 இடையில் உள்ள UDP port-ஐப் பயன்படுத்துகிறது. எனவே அந்த range-ஐத் திறக்கவும்:
sudo ufw allow 60000:61000/udp
sudo ufw statusufw மூலம் ports-ஐத் திறத்தல் firewall அமைப்பின் மீதிப் பகுதியைக் காட்டுகிறது. உங்கள் provider control panel-ல் தனி network firewall வழங்கினால், அங்கேயும் அதே range-ஐச் சேர்க்கவும். ஏனெனில் machine-க்கு முன்பாக இருக்கும் filter-ஐ ufw rule பாதிக்க முடியாது.
mosh தொடர்பான இரண்டு failures பொதுவாக ஏற்படும். Login வெற்றி பெற்ற பிறகு முடங்கி, Nothing received from server on UDP port 60001. என்று காட்டினால், phone மற்றும் server இடையில் எங்கோ UDP range தடுக்கப்பட்டுள்ளது என்று பொருள். Connection mosh-server not found என்று காட்டினால், server-ல் package இல்லை அல்லது login PATH-ல் அது இல்லை என்று பொருள். அதை install செய்யவும். அல்லது mosh --server=/usr/bin/mosh-server you@server மூலம் அதை நேரடியாகக் குறிப்பிடவும்.
Login locale UTF-8 ஆக இல்லாவிட்டால் mosh இயங்க மறுக்கும். அது இதைத் தெரிவிக்கும்: mosh-server needs a UTF-8 native locale to run. Locale-ஐ phone-ல் அல்ல, server-ல் சரிசெய்யவும்.
locale
sudo locale-gen en_US.UTF-8
sudo update-locale LANG=en_US.UTF-8mosh செய்யாத இரண்டு விஷயங்கள் உள்ளன. mosh X forwarding-ஐயும், port forwarding உட்பட SSH-ன் non-interactive பயன்பாடுகளையும் ஆதரிக்காது என்று அதன் README குறிப்பிடுகிறது. எனவே Claude Code இப்போது தொடங்கிய web app-ஐ preview செய்ய plain ssh -L 8080:127.0.0.1:8080 you@server இன்னும் தேவைப்படும். மேலும் இது காணக்கூடிய screen-ஐ மட்டுமே synchronise செய்கிறது. ஆகவே இதற்கென scrollback இல்லை. இங்கு அந்த வரம்பால் பாதிப்பு இல்லை. ஏனெனில் tmux scrollback-ஐ வைத்திருக்கிறது: Ctrl-b, பின்னர் [ copy mode-ஐத் திறக்கும். Drag அல்லது arrow keys மூலம் scroll செய்யலாம். q மூலம் வெளியேறலாம்.
தொலைபேசி திரையைப் பயன்படுத்தக்கூடியதாக மாற்றுதல்
சேவையகத்தில் உள்ள ~/.tmux.conf-இல் நான்கு வரிகள் பெரும்பாலான பணிகளைச் செய்கின்றன:
set -g mouse on
set -g status-position top
set -g default-terminal "tmux-256color"
set -g history-limit 20000mouse on தொடுதிரையில் இழுப்பதை scroll ஆகவும், tap செய்வதை pane அல்லது window தேர்வாகவும் மாற்றுகிறது. இதனால் தட்டச்சு செய்ய சிரமமான பெரும்பாலான prefix keys தேவையில்லை. status-position top tmux status line-ஐ கீழ் விளிம்பிலிருந்து நகர்த்துகிறது. இல்லையெனில் on-screen keyboard மற்றும் அதன் suggestion bar அதை மறைத்துவிடும். default-terminal முக்கியமானது. இல்லையெனில் tmux, Claude Code-க்கு screen terminal என அறிவிக்கும். இதனால் colours மற்றும் box drawing தேவையற்ற அளவுக்கு மோசமாகத் தோன்றும். அதன் பிறகு tmux, missing or unsuitable terminal: tmux-256color உடன் தொடங்க மறுத்தால், terminfo entry இல்லை என்பதே காரணம்: sudo apt install ncurses-term.
நான்கு keys-ஐக் கற்றுக்கொண்டால், மீதிப் பயன்பாடு வசதியாக இருக்கும்.
EscClaude-ன் நடப்பு பதிலை இடைநிறுத்துகிறது. ஏற்கனவே முடிந்த பணிகள் பாதுகாக்கப்படும். எனவே உங்கள் thumb-க்கு அருகில் இருக்க வேண்டிய key இதுவாகும்.Ctrl+Cஇயங்கிக்கொண்டிருக்கும் operation-ஐயும் இடைநிறுத்துகிறது. idle prompt-இல் முதல் அழுத்தல் input-ஐ அழிக்கிறது. இரண்டாவது அழுத்தல் Claude Code-இலிருந்து வெளியேறுகிறது. எனவே இது அதிக வலுவான கட்டுப்பாடாகும்.Esc-ஐ இரண்டு முறை அழுத்தினால் draft prompt அழிக்கப்படும். empty prompt-இல், அதற்குப் பதிலாக rewind menu திறக்கும்.- பல வரிகள் கொண்ட prompt-க்கு,
\-ஐ type செய்து பின்னர் Enter அழுத்தவும். இந்த முறை ஒவ்வொரு terminal-லும் செயல்படும். Shift+Enter சில desktop terminals-இல் மட்டுமே native ஆகும். mobile clients அவற்றில் இல்லை.
split panes-ஐத் தவிர்க்கவும். portrait நிலையில் ஒரு phone சுமார் 40 columns அகலமுடையது. எனவே vertical split செய்தால் ஒவ்வொரு pane-க்கும் 20 columns மட்டுமே இருக்கும். ஒவ்வொரு diff-உம் பல வரிகளாக மடங்கி வாசிக்க முடியாததாகிவிடும். அதற்குப் பதிலாக tmux windows-ஐப் பயன்படுத்தவும்: Ctrl-b c ஒன்றை உருவாக்கும்; Ctrl-b n அடுத்ததிற்குச் செல்லும். diff-ஐச் சரியாகப் படிக்க வேண்டியபோது phone-ஐக் கிடைமட்டமாகத் திருப்பவும்.
சிறிய திரையில் நீண்ட session நடத்தும்போது பெரும்பாலான சிக்கல் context தொடர்பானதாக இருக்கும். எனவே ரயிலில் இருந்து ஒரு முழு நாள் பணியை இயக்க முயல்வதற்கு முன் Claude Code context window-ஐ நிர்வகித்தல் என்பதைப் படிப்பது பயனுள்ளதாக இருக்கும்.
Lock it down: keys only, no passwords
இப்போது, உங்கள் code-ஐத் திருத்தி commands-ஐ இயக்கும் machine-க்கான key-ஐ phone வைத்திருக்கிறது. Password authentication-ஐ முடக்கவும். sshd_config-ஐ நேரடியாகத் திருத்துவதைக் காட்டிலும் drop-in file பாதுகாப்பானது. காரணம், Ubuntu-வின் sshd_config மேல்பகுதியில் /etc/ssh/sshd_config.d/*.conf-ஐ சேர்க்கிறது. ஒரு setting-க்கு முதலில் காணப்படும் value-தான் பயன்படுத்தப்படும்.
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 sshsshd -t config-ஐ parse செய்து, அது valid ஆக இருக்கும்போது எதையும் print செய்யாது. இதைத் தவிர்த்தால், ஒரு typo காரணமாக reload செய்யும்போது sshd தோல்வியடையும். தற்போதைய working session-ஐத் திறந்தே வைத்திருக்கவும். எதையும் மூடும் முன், இரண்டாவது connection-இலிருந்து test செய்யவும். தவறான key இப்போது Permission denied (publickey).-ஐ ஏற்படுத்தும். Passwords முடக்கப்பட்டிருப்பதால் fallback இருக்காது. அந்த நேரத்தில் recovery path உங்கள் provider-ன் console ஆகும்.
ஒவ்வொரு device-க்கும் தனித்தனி key வழங்கவும். Phone தொலைந்தால், ~/.ssh/authorized_keys-இலிருந்து ஒரு line-ஐ மட்டும் நீக்க வேண்டும். உங்கள் laptop தொடர்ந்து செயல்படும். ஒரே shared key-ஐப் பயன்படுத்தினால், உங்களிடம் உள்ள ஒவ்வொரு device-லும் key-ஐ மாற்ற வேண்டும்.
Ubuntu 24.04-ல் SSH-ஐ வேறு port-க்கு மாற்றினால், listener ssh.socket-க்கு உரியது என்பதை நினைவில் கொள்ளவும். எனவே, தனியாக உள்ள Port line எதையும் மாற்றாது. sudo systemctl edit ssh.socket-ஐ இயக்கவும். Default-ஐ காலியாக உள்ள ListenStream= மூலம் clear செய்யவும். அடுத்த line-ல் உங்கள் port-ஐ set செய்யவும். VPS-ல் SSH-ஐ harden செய்தல் இதையும், மீதமுள்ள attack surface-ஐக் குறைப்பதையும் விளக்குகிறது.
SSH-க்கான fail2ban passwords முடக்கப்பட்ட பிறகு அதிக security-ஐ வழங்காது. காரணம், guessed password ஏற்கப்படவே முடியாது. இது வழங்குவது அமைதியான logs ஆகும். இதனால் உண்மையான login attempt-ஐ எளிதாகக் கண்டறியலாம்.
Public internet-இலிருந்து SSH-ஐத் தடுக்குவது இன்னும் வலுவான option ஆகும். நீங்களே host செய்யும் WireGuard VPN-க்குப் பின்னால் server-ஐ வைக்கவும். தேவையானபோது phone-ல் tunnel-ஐ இயக்கவும். Tunnel-ல் மட்டும் sshd-க்கு ListenAddress வழங்கவும். இரு பக்கங்களும் UDP-ஐப் பயன்படுத்துவதால் mosh tunnel வழியாக இயங்கும். ஒரு வரம்பு உள்ளது: tunnel packet overhead-ஐச் சேர்க்கும். பெரிய transfers நின்றுவிட்டால், phone-ன் WireGuard config-ல் MTU (maximum transmission unit)-ஐக் குறைக்கவும்.
இந்த முறையில் வேலை செய்வது குறித்து இன்னொரு முக்கிய அம்சம் உள்ளது. Phone-இலிருந்து, ஒரே நேரத்தில் சில diff lines மட்டும் காட்டும் screen-ல் permission prompts-ஐ approve செய்கிறீர்கள். ஆகவே guardrails-ஐ முடக்குவதற்குப் பதிலாக, அவற்றைத் தொடர்ந்து வைத்திருக்க வேண்டும். VPS-ல் Claude Code-ஐப் பாதுகாப்பாக இயக்குதல் என்பதில், touchscreen-தான் உங்கள் முக்கிய entry point ஆகும் முன் அமைக்க வேண்டிய user மற்றும் directory limits பற்றி விளக்கப்பட்டுள்ளது.
மீண்டும் இணைத்தபோது ஏதேனும் தவறாக இருந்தால்
tmux attach அச்சிடப்படுவது no server running on /tmp/tmux-1000/default என்பது tmux server இல்லை என்பதைக் குறிக்கிறது. பெரும்பாலும் machine reboot செய்யப்பட்டிருக்கும். uptime மூலம் சரிபார்க்கவும். தானியங்கி security updates மூலம் நிகழும் kernel updates box-ஐ reboot செய்கின்றன. Reboot செய்யப்பட்ட box-இல் tmux session இருக்காது. எனவே எந்த Claude Code run-ஐயும் மீண்டும் தொடங்கக்கூடியதாகக் கருதவும்.
can't find session: claude வேறுபட்டது. tmux server இயங்குகிறது. ஆனால் அந்தப் பெயர் இல்லை. தற்போது இருப்பவற்றை tmux ls காட்டுகிறது.
Claude Code இருந்த இடத்தில் சாதாரண shell prompt மட்டும் இருந்தால், session முடிவதற்கு முன்பே process முடிந்துவிட்டது. dmesg -T | tail இல் Out of memory: Killed process 4821 (claude) போன்ற வரியைப் பார்க்கவும். இது 4 GB requirement-க்கு குறைவான box, பெரிய edit நடக்கும்போது காண்பிக்கும் நிலையாகும். அத்தகைய வரி இல்லையெனில் Claude Code தானாகவே வெளியேறியுள்ளது. காரணம் prompt-க்கு மேலுள்ள shell scrollback-இல் இருக்கும்.
மீண்டும் வரும் window மிகச் சிறியதாகவும், அதைச் சுற்றி பயன்படுத்தப்படாத இடத்துடனும் இருந்தால், வெவ்வேறு அளவுகளில் இரண்டு clients இணைக்கப்பட்டுள்ளன என்று பொருள். குறைந்த அளவுள்ள attached client-க்கு பொருந்துமாறு tmux window-ன் அளவை அமைக்கிறது. உங்கள் laptop session-ஐ இன்னும் 200 columns அகலத்தில் வைத்திருக்கிறது. அதே நேரத்தில் phone 40 columns கேட்கிறது. இணையும் போது மற்ற clients-ஐ detach செய்யவும்: tmux attach -d -t claude.
FAQ
VPS-க்கு பதிலாக தொலைபேசியிலேயே Claude Code-ஐ இயக்க முடியுமா?
முடியாது. July 2026 நிலவரப்படி ஆதரிக்கப்படும் platforms: macOS, Windows, Ubuntu 20.04 அல்லது அதற்குப் பிந்தையது, Debian 10 அல்லது அதற்குப் பிந்தையது, Alpine 3.19 அல்லது அதற்குப் பிந்தையது. இவற்றில் 4 GB அல்லது அதற்கு மேற்பட்ட RAM இருக்க வேண்டும். Android மற்றும் iOS இந்தப் பட்டியலில் இல்லை. மேலும், தொலைபேசி apps-ஐ sleep நிலையில் வைக்கும் மற்றும் network address-ஐ அடிக்கடி மாற்றும். நீண்ட நேர agent run-க்கு இது ஏற்றதல்ல. இதை server-ல் இயக்கி, தொலைபேசியை display ஆகப் பயன்படுத்தவும்.
App-ஐ மூடினால் அல்லது signal இழந்தால் session தொடருமா?
ஆம். இதை இரண்டு தனித்தனி components கையாளுகின்றன. tmux server-ல் process இயங்கிக் கொண்டிருக்கச் செய்கிறது. எனவே connection முடிந்தாலும் process நிற்காது. mosh connection-ஐத் தொடர்ந்து வைத்திருந்து address மாற்றத்தைக் கையாளுகிறது. எனவே wifi-யிலிருந்து mobile data-க்கு மாறும்போது reconnect செய்ய வேண்டியதில்லை. tmux இல்லாத plain SSH connection துண்டிக்கப்பட்டால் SIGHUP அனுப்பப்படும். அதனால் Claude Code task நடுவிலேயே நிற்கும்.
mosh connect ஆன பிறகு எதையும் காட்டாமல் இருப்பது ஏன்?
Login வெற்றியடைந்த பிறகு Nothing received from server on UDP port 60001. என்று காட்டி நிற்பது UDP 60000 முதல் 61000 வரை open இல்லை என்பதைக் குறிக்கிறது. அந்த range-ஐ ufw-ல் சேர்க்கவும். பெரும்பாலான panels-ல் தனி control ஆக இருக்கும் உங்கள் provider-ன் network firewall-லும்கூட அதே range-ஐ சேர்க்கவும். mosh அதற்கு பதிலாக mosh-server கிடைக்கவில்லை என்று தெரிவித்தால், server-ல் அந்த package இல்லை என்று பொருள்: sudo apt install mosh.
Esc key இல்லாத keyboard-ல் இருந்து Claude Code-ஐ எவ்வாறு interrupt செய்வது?
ஒரு key row-ஐச் சேர்க்கவும். Termux-ல் ~/.termux/termux.properties என்பதில் extra-keys பயன்படுத்தி ஒன்றை configure செய்யலாம். Termius மற்றும் Blink இரண்டிலும் settings-ல் திருத்தக்கூடிய key row வழங்கப்படுகிறது. Esc இயங்கிக் கொண்டிருக்கும் response-ஐ interrupt செய்து, ஏற்கனவே முடிக்கப்பட்ட பணியை வைத்திருக்கும். Ctrl+C-உம் interrupt செய்யும். ஆனால் idle prompt-ல் அதை இரண்டு முறை அழுத்தினால் Claude Code வெளியேறும். எனவே முதலில் Esc-ஐப் பயன்படுத்தவும்.
SSH-ஐ internet-க்கு திறந்து வைப்பது இதற்குப் போதுமான பாதுகாப்பானதா?
Password authentication-ஐ முடக்கியிருந்தால், உங்கள் devices-ஐ விட்டு வெளியேறாத key மட்டுமே வெற்றிகரமாக authenticate செய்ய முடியும். மீண்டும் உருவாக்கக்கூடிய machine-க்கு இது ஏற்றுக்கொள்ளத்தக்க risk ஆகும். ஒவ்வொரு device-க்கும் தனித்தனி key வழங்கவும். தொலைபேசி தொலைந்தால் authorized_keys-ல் உள்ள ஒரு line-ஐ மட்டும் நீக்க வேண்டியிருக்கும். Public port-ல் பதிலளிக்க விரும்பவில்லை என்றால், box-ஐ WireGuard-க்கு பின்னால் வைத்து, tunnel address-ல் sshd listen செய்யட்டும்.