SSD Nodes Learn Hosting plans →
Rehberler Matt ConnorYazan Matt Connor · Güncellendi 2026-10-30

Telefondan Claude Code Kullanımı ve Kurulum Rehberi

Claude Code aracını VPS üzerinde tmux ile çalıştırmayı öğrenin. SSH ve mosh kullanarak mobil bağlantı kopmalarını engelleyin ve terminal üzerinden kesintisiz kodlayın.

Telefonunuzdan Claude Code kullanımı: çalışma prensibi

Bu kılavuz, telefonunuzdaki bir terminal uygulamasını kullanır. Claude Code, açık kalan bir tmux oturumu içerisinde bir VPS (sanal özel sunucu) üzerinde çalışır; telefonunuz ise siz baktığınız sürece bu oturuma bir SSH (güvenli kabuk) bağlantısı açar. Uygulamayı kapatsanız dahi süreç telefon üzerinde yaşamadığı için ajan çalışmaya devam eder.

Claude Code ayrıca Uzaktan Kontrol (Remote Control) özelliği de sunar: süreç sunucuda kalmaya devam ederken, Claude mobil uygulaması veya bir tarayıcı üzerinden kullanmak için oturum içerisinde /remote-control komutunu çalıştırın.

Bu ayrım, tasarımın temelidir. Telefon işletim sistemleri, uygulamadan çıktığınız andan itibaren birkaç saniye içinde uygulamayı askıya alır; bu nedenle telefon üzerinde başlatılan uzun süreli işler durur. Ayrıca Wi-Fi ağından mobil veriye her geçişinizde yeni bir ağ adresi alırsınız. Süreç sunucuda çalıştığında ve telefon yalnızca ekranı görüntülediğinde her iki sorun da ortadan kalkar.

Sunucu tarafında dört şeye ihtiyacınız vardır: oturumu tutmak için tmux, giriş yapmak için SSH anahtarları, ağ değişiklikleri için mosh ve Claude Code'un kendisi. Telefon tarafında ise kolayca erişebileceğiniz bir tuş takımına sahip bir terminal uygulaması yeterlidir.

VPS üzerinde gerekenler

SSH ve tmux bölümleri için küçük bir Ubuntu 24.04 sunucusu yeterlidir. Claude Code daha fazlasını talep eder. Ekim 2026 itibarıyla resmi gereksinimler; x64 veya ARM64 işlemci üzerinde Ubuntu 20.04 veya daha yeni bir sürüm ve en az 4 GB RAM'dir. Claude Code ayrıca ücretli bir Claude hesabı (Pro, Max, Team veya Enterprise), API erişimi olan bir Console hesabı ya da Amazon Bedrock gibi desteklenen bir bulut sağlayıcısı üzerinden erişim gerektirir; çünkü ücretsiz Claude.ai planı bunu kapsamaz.

Sunucuyu root olarak değil, sudo yetkisine sahip sıradan bir kullanıcı ile yapılandırın. Sunucu yeniyse, önce yeni bir VPS üzerindeki ilk on dakika rehberini tamamlayın; çünkü bu kılavuzun ilerleyen bölümlerindeki SSH değişiklikleri, kullanıcı ve güvenlik duvarı zaten mevcut olduğunda daha kolay uygulanır.

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

Yükleyici, ikili dosyayı ~/.local/bin/claude dizinine yerleştirir ve claude --version komutu 2.1.211 (Claude Code) gibi bir satır çıktısı verir. Eğer command not found çıktısını alıyorsanız, ilgili dizin henüz PATH değişkeninizde tanımlı değildir: oturumu kapatıp tekrar açın ve ardından command -v claude ile kontrol edin. claude doctor komutu, bir oturum başlatmadan kurulum ve ayar tanılamalarını yazdırır.

Telefona bağımlı hale gelmeden önce, şimdi bir dizüstü bilgisayardan bir kez giriş yapın. Bir proje dizininde claude komutunu çalıştırın ve giriş istemini takip edin. İşlem akışı, bir tarayıcıda URL açmanızı ve bir kodu terminale geri getirmenizi ister; telefon ekranında iki uygulama arasında geçiş yapmak yavaştır. Bunu gerçek bir klavyede bir kez yapın; kimlik bilgileri sunucuda kalacaktır.

Claude Code'u tmux içinde başlatarak bağlantı kopmalarında kapanmasını önleyin

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

Ctrl-b ve ardından d tuşlarına basarak oturumdan ayrılın. tmux, [detached (from session claude)] çıktısını verir ve sizi kabuğa (shell) geri döndürür. Artık uygulamayı kapatabilir, sinyal kaybedebilir veya telefonunuzu cebinize koyabilirsiniz. Bölme (pane) çalışmaya devam eder.

tmux ls
tmux attach -t claude

tmux ls komutu, claude: 1 windows (created Thu Jul 30 09:14:02 2026) gibi her oturum için bir satır çıktı verir. tmux attach -t claude komutu sizi, yarım kalmış düzenlemeleriniz dahil olmak üzere tam olarak bıraktığınız yere geri götürür.

Bu yöntem, tmux'ın kendi sunucu sürecini çalıştırması ve kabuğunuz ile Claude Code'un sshd yerine bu sunucunun alt süreçleri olması sayesinde çalışır. SSH bağlantısı sona erdiğinde, çekirdek bu bağlantıya bağlı süreçlere SIGHUP (hangup) sinyali gönderir; tmux sunucusu ise bu süreçlerden biri değildir. tmux olmadan, bağlantınızı koparan aynı ekran kilidi, Claude Code'u bir araç çağrısının ortasında durdurur. Claude Code'u bir VPS üzerinde tmux içinde çalıştırmak konusu, oturum düzenini daha derinlemesine ele almaktadır.

tmux'ı telefonunuzda değil, her zaman sunucuda çalıştırın. Zaten bağlı olduğunuz bir oturumun içinde tmux yazmak sessions should be nested with care, unset $TMUX to force çıktısını verir; bunu zorlamak ise çakışan iki ön ek tuşuyla uğraşmanıza neden olur.

Her girişte otomatik olarak bağlama

Dokunmatik klavyede attach komutunu yazmak zamanla zahmetli hale gelir. Bunu sunucudaki ~/.profile dosyasının sonuna ekleyin:

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, eğer mevcutsa claude isimli oturuma bağlanır, mevcut değilse bu oturumu oluşturur; böylece tek bir komut her iki durumu da karşılar. exec, giriş kabuğunu (login shell) tmux ile değiştirir; bu sayede tmux oturumundan çıkıldığında bağlantı sonlanır ve sizi boş bir komut satırında bırakmaz. Normal bir kabuğa ihtiyaç duyduğunuzda dosyayı atlayın: ssh you@server -t "bash --noprofile".

Bunu ~/.bashrc içine değil, ~/.profile içine ekleyin. Bash, etkileşimli olmayan SSH komutları için de ~/.bashrc dosyasını okur; ancak yukarıdaki [ -t 1 ] koruması, dosya aktarımı sırasında bu bloğun tmux başlatmasını engeller. Çıktı üreten korumasız başlatma komutları, dosya aktarım protokollerini Received message too long gibi hatalarla bozar. ~/.profile yalnızca etkileşimli SSH oturumu olan giriş kabukları için çalışır.

~/.profile, Ubuntu'nun ~/.local/bin değerini PATH değişkenine eklediği yerdir. Eğer claude girişten hemen sonra düzgün çalışıyor ancak tmux içindeki bir kabuk command not found hatası veriyorsa, bunun nedeni sıralamadır; bu yüzden tmux'ı bir betikten değil, yukarıda belirtildiği gibi bir giriş kabuğundan başlatın.

Her iki uygulama da SSH ve mosh protokollerini destekler ve anahtarları uygulama içerisinde saklar. Aralarındaki fark arayüzleridir.

Blink Shell komut odaklıdır. Komut satırına, masaüstü terminaliyle aynı sözdizimine sahip olan ssh you@server veya mosh you@server yazılır. Ayarlar config yazılarak açılır ve Keys bölümü sizin için bir anahtar çifti oluşturur.

Termius form odaklıdır. Bir ana bilgisayar girişi doldurur, ardından ana bilgisayar ayrıntılarından bağlantı türünü SSH'den Mosh'a çevirirsiniz. Termius kendi mosh uygulamasını içerir ve mosh 1.3.0 ve üzerini destekler; bu nedenle sunucuda hala mosh paketinin yüklü olması gerekir.

Her iki durumda da anahtarı uygulama içinde oluşturun ve mevcut bir özel anahtarı asla telefona kopyalamayın. Uygulama size, sunucudaki ~/.ssh/authorized_keys dosyasına ekleyeceğiniz tek satırlık genel anahtar kısmını gösterir. Cihaza özel SSH anahtarları ve anahtar iptali konusu, isimlendirme ve iptal adımlarını kapsar; bu adımlar bir telefon için dizüstü bilgisayardan daha kritiktir.

Terminal uygulamasının kendi biyometrik veya parola kilidini etkinleştirin. Bu kilit olmadan, kilidi açık bir telefon, ekran açık kaldığı sürece sunucunuzda açık bir kabuk (shell) işlevi görür.

Android: Termux

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

Termux, OpenSSH ve mosh paketlerini kendi deposunda barındırır; bu nedenle ssh, ssh-keygen ve mosh masaüstü ortamındakiyle aynı şekilde çalışır. Ekrana yazdırılan genel anahtar satırını sunucudaki ~/.ssh/authorized_keys dosyasına ekleyin, ardından mosh you@server ile bağlantı kurun.

Android ekran klavyesinde Esc ve Ctrl tuşları bulunmaz, ancak Claude Code her ikisine de ihtiyaç duyar. Termux kendi tuş satırını oluşturabilir. ~/.termux/termux.properties dosyasına şu satırı ekleyin:

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

Ardından termux-reload-settings komutunu çalıştırın; tuş satırı klavyenin üzerinde belirecektir. Aynı yeniden yükleme işlemi, ~/.termux/font.ttf dizinine bırakılan monospace TrueType yazı tipini de sisteme dahil eder.

Android, arka planda çalıştığı sırada Termux'u durdurabilir; bu durum sizin için yalnızca yeniden bağlanma maliyeti doğurur. Oturum ve aracı (agent) sunucu üzerinde çalışmaya devam eder.

Wi-Fi ağından ayrıldığımda terminal neden donuyor ve mosh bunu nasıl düzeltiyor?

SSH bağlantısı bir TCP (transmission control protocol) bağlantısıdır ve TCP bağlantısı her iki adres ve her iki port ile tanımlanır. Wi-Fi kapsama alanından çıktığınızda telefonunuz mobil ağdan yeni bir adres alır; bu nedenle eski bağlantı artık hiçbir uçta eşleşmez. Hiçbir mekanizma bu durumu bildirmez. TCP pes edene kadar terminal yanıt vermeyi durdurur ve ardından ssh client_loop: send disconnect: Broken pipe çıktısını verir. Donmuş bir oturumu hemen sonlandırmak için Enter, ardından ~ ve . tuşlarına basın.

mosh (mobile shell) bu hata modunu ortadan kaldırır. Giriş yapmak ve bir mosh-server süreci başlatmak için SSH'ı bir kez kullanır, sunucunun seçtiği UDP (user datagram protocol) portunu okur ve SSH bağlantısını kapatır. Bundan sonra iki taraf, paylaşılan bir oturum anahtarıyla doğrulanmış UDP veri paketleri alışverişinde bulunur; böylece oturum adresinizle değil, bu anahtarla tanımlanır. Yeni bir adres bağlantıyı kesmez, devam ettirir. mosh ayrıca yazdıklarınızı yerel olarak yansıtır ve sunucu ile uyuşmazlık olduğunda ekranı yeniden çizer; bu sayede yavaş mobil bağlantılarda bile kullanılabilir kalır.

mosh, 60000 ile 61000 arasında bir UDP portu kullanır, bu nedenle bu aralığı açın:

sudo ufw allow 60000:61000/udp
sudo ufw status

ufw ile port açma rehberinde güvenlik duvarının geri kalanı açıklanmıştır. Sağlayıcınız kontrol panelinde ayrı bir ağ güvenlik duvarı sunuyorsa, aynı aralığı orada da tanımlayın; çünkü ufw kuralı, makinenin önünde yer alan bir filtreyi etkileyemez.

İki mosh hatası yaygındır. Giriş başarılı olduktan sonra donan ve Nothing received from server on UDP port 60001. hatası veren bir bağlantı, mosh-server sürecinin başladığını ancak istemcinin bu UDP portu üzerinden sunucuya ulaşamadığını gösterir. Bu durum genellikle telefon ile sunucu arasındaki bir güvenlik duvarının mosh aralığındaki UDP trafiğini engellediği anlamına gelir. mosh-server bulunamadı hatası, paketin sunucuda eksik olduğu veya giriş PATH içerisinde yer almadığı anlamına gelir. Paketi yükleyin veya mosh --server=/usr/bin/mosh-server you@server ile doğrudan yolunu gösterin.

Sunucunun giriş yerel ayarı (locale) UTF-8 değilse, mosh-server istemci tarafından sağlanan yerel ayarları dener ve tekrar kontrol eder. Yalnızca bu da UTF-8 sağlamazsa çalışmayı reddeder ve mosh-server needs a UTF-8 native locale to run. hatasını verir. Öncelikle sunucudaki yerel ayarları düzeltin.

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

Her iki ucun da UTF-8 yerel ayarına ihtiyacı vardır ve mosh-server istemcinin gönderdiği yerel ayarları uygular. Hata sunucu düzeltmesinden sonra devam ederse, mosh'un kendi SSS bölümünde de belirtildiği gibi mosh-client gerekebileceği üzere, telefonun terminal uygulamasında da LANG değerini bir UTF-8 değeri olarak ayarlayın.

mosh'un yapmadığı iki şey vardır. README dosyası, mosh'un X forwarding veya port forwarding dahil olmak üzere SSH'ın etkileşimli olmayan kullanımlarını desteklemediğini belirtir; bu nedenle Claude Code tarafından başlatılan bir web uygulamasını önizlemek için hala standart ssh -L 8080:127.0.0.1:8080 you@server kullanmanız gerekir. Ayrıca mosh yalnızca görünür ekranı senkronize eder, bu nedenle kendi kaydırma geçmişi (scrollback) yoktur. Bu ikinci sınırlama burada bir sorun teşkil etmez, çünkü tmux kaydırma geçmişini tutar: Ctrl-b ve ardından [ ile kopyalama moduna girilir, sürükleme veya ok tuşları ile kaydırılır ve q ile çıkılır.

Telefon ekranını kullanılabilir hale getirme

Sunucudaki ~/.tmux.conf dosyasında yer alan dört satır, işin büyük kısmını halleder:

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

mouse on, dokunmatik sürükleme hareketini kaydırma işlemine, dokunmayı ise bölme veya pencere seçimine dönüştürür; bu da yazılması zor olan ön ek tuşlarının çoğunun yerini alır. status-position top, tmux durum satırını ekran klavyesi ve öneri çubuğu tarafından kapatıldığı alt kenardan yukarı taşır. default-terminal, tmux'un Claude Code'a bildirdiği terminal adını sabitler. Bu satır olmadan tmux, derleme sırasında seçilen ismi bildirir. tmux 3.4 yapılandırma betiği screen ile başlar, ardından sırasıyla screen-256color, tmux ve tmux-256color testlerini yapar; başarısız bir test, önceki seçimin korunmasına neden olur. tmux-256color terminfo girdisini bulamayan bir derleme, sonuç olarak tmux, screen-256color veya düz screen ile kalır; bu durumda renkler ve kutu çizimleri olması gerekenden daha kötü görünebilir.

Dört tuşu öğrenin, gerisi rahat olacaktır.

  • Esc, Claude'u yanıtın ortasında durdurur ve yapılan işi korur; bu yüzden baş parmağınıza en yakın olmasını isteyeceğiniz tuştur.
  • Ctrl+C, çalışan bir işlemi de durdurur. Boş bir komut satırında ilk basış girişi temizler, ikinci basış ise Claude Code'dan çıkar; bu yüzden daha sert bir araçtır.
  • Esc tuşuna iki kez basmak taslak halindeki bir komutu temizler, boş bir komut satırında ise geri sarma menüsünü açar.
  • Çok satırlı bir komut için \ yazıp Enter tuşuna basın. Bu biçim her terminalde çalışır. Shift+Enter yalnızca sınırlı sayıdaki masaüstü terminalinde yerel olarak desteklenir ve mobil istemciler bu listede değildir.

Bölünmüş panellerden kaçının. Dikey konumdaki bir telefon yaklaşık 40 sütun genişliğindedir, bu nedenle dikey bir bölme her panelde 20 sütun bırakır ve tüm fark (diff) çıktıları karmaşık bir hale gelir. Bunun yerine tmux pencerelerini kullanın: Ctrl-b c yeni bir pencere oluşturur, Ctrl-b n ise bir sonrakine geçer. Eğer ikinci bir pencere kendi Claude Code oturumunu barındırıyorsa, iki oturum işi doğrudan birbirine aktarabilir; böylece dokunmatik ekranda pencereler arasında metin kopyalamak zorunda kalmazsınız. Bir fark çıktısını düzgün okumanız gerektiğinde telefonu yan çevirin.

Ekrana ne kadar metin geleceğini bilinçli olarak ayarlamak önemlidir, çünkü bir çıktı stili her yanıtın arkasındaki sistem istemini düzenler ve daha kısa bir stil, telefonda kaydırmanız gereken ekran sayısının azalması anlamına gelir.

Küçük bir ekranda uzun süreli bir oturum temel olarak bir bağlam sorunudur, bu nedenle Claude Code bağlam penceresini yönetme konusunu, tüm gün sürecek bir çalışmayı trenden yürütmeye kalkışmadan önce okumanızda fayda vardır.

Erişimi kısıtlayın: yalnızca anahtarlar, parola yok

Telefonunuz artık kodunuzu düzenleyen ve komutları çalıştıran bir makinenin anahtarına sahip. Parola ile kimlik doğrulamasını kapatın. Ubuntu'nun sshd_config dosyası en üstte /etc/ssh/sshd_config.d/*.conf içerdiğinden ve bir ayar için bulunan ilk değer geçerli olduğundan, sshd_config dosyasını doğrudan düzenlemek yerine bir drop-in dosyası kullanmak daha güvenlidir.

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

Drop-in dosyaları dosya adı sırasına göre okunur. sudo sshd -T dizinini passwordauthentication no, kbdinteractiveauthentication no, pubkeyauthentication yes ve permitrootlogin no açısından kontrol edin; bunlardan birini ayarlayan daha önceki bir dosya öncelik kazanır ve düzeltilmesi gerekir.

sshd -t yapılandırmayı ayrıştırır ve geçerli olduğunda hiçbir çıktı vermez. Bu adımı atlarsanız ve bir yazım hatası yaparsanız, yeniden yükleme sırasında sshd başarısız olur. Çalışan oturumunuzu açık tutun ve hiçbir şeyi kapatmadan önce ikinci bir bağlantı üzerinden test yapın; çünkü yanlış bir anahtar artık Permission denied (publickey). hatasına yol açar ve parolalar kapalı olduğunda geri dönüş seçeneğiniz kalmaz. Bu noktada kurtarma yolu, servis sağlayıcınızın konsoludur. Eğer test bağlantısı başarısız olursa, ssh -v ile yeniden bağlanın ve ilk oturum hala açıkken sorunu çözün; çünkü ilgili hata mesajı beş farklı hatayı kapsar ve ayrıntılı çıktı size bunlardan hangisiyle karşılaştığınızı söyler.

Her cihaza kendi anahtarını atayın. Telefonunuzu kaybettiğinizde ~/.ssh/authorized_keys dosyasından tek bir satırı silmeniz yeterlidir ve dizüstü bilgisayarınız çalışmaya devam eder. Paylaşılan tek bir anahtar, sahip olduğunuz her cihazdaki anahtarı değiştirmeniz gerektiği anlamına gelir.

Ubuntu 24.04 üzerinde SSH'ı başka bir porta taşırsanız, dinleyicinin ssh.socket'e ait olduğunu unutmayın. Bir systemd oluşturucu, bu soketi SSH yapılandırmanızdaki Port satırından oluşturur; bu nedenle ListenStream geçersiz kılma dosyasına ihtiyacınız yoktur. Ancak yalnızca ssh servisini yeniden başlatmak, sunucunun 22 numaralı portu dinlemeye devam etmesine neden olur. Port satırını bir drop-in dosyasına ekleyin, yeni porta ufw üzerinden izin verin ve ardından sudo systemctl daemon-reload komutunu, ardından sudo systemctl restart ssh.socket komutunu çalıştırın. VPS üzerinde SSH güvenliğini artırma konusu, bu işlemi ve yüzey alanının geri kalanını kapsar.

SSH için fail2ban kullanımı, parolalar devre dışı bırakıldığında çok az ek güvenlik sağlar; çünkü tahmin edilen bir parola hiçbir şekilde kabul edilemez. Sağladığı asıl fayda, log kayıtlarını temiz tutmasıdır; bu da gerçek bir giriş denemesini fark etmeyi kolaylaştırır.

Daha güçlü bir seçenek, SSH'ı genel internete kapalı tutmaktır. Sunucuyu kendi barındırdığınız bir WireGuard VPN arkasına alın, tüneli gerektiğinde telefonunuzda başlatın ve sshd'ye yalnızca tünel üzerinde bir ListenAddress atayın. mosh, her iki taraf da UDP kullandığı için tünel üzerinden çalışır. Bir uyarı: tünel paket yükü ekler, bu nedenle büyük aktarımlar duraksarsa telefonun WireGuard yapılandırmasındaki MTU (maksimum iletim birimi) değerini düşürün.

Bu şekilde çalışmakla ilgili son bir nokta: Telefondan, bir seferde birkaç satır diff gösteren bir ekranda izin istemlerini onaylarsınız. Bu, koruma mekanizmalarını kapatmak yerine onları korumak için bir nedendir. Oturumlarınızın hangi izin modunda başladığını da kontrol edin; çünkü otomatik mod, Claude Code v2.1.283 sürümünden itibaren etkileşimli terminal oturumları için yerleşik başlangıç modudur ve çalışma dizinindeki dosya düzenlemelerini sormadan gerçekleştirir. Claude Code'u bir VPS üzerinde güvenli çalıştırma, ana giriş yönteminiz dokunmatik ekran olmadan önce ayarlamanız gereken kullanıcı ve dizin sınırlarını kapsar.

Yeniden bağlandığınızda bir sorun oluşursa

tmux attach yazdırmak, no server running on /tmp/tmux-1000/default komutunun o soket üzerinde herhangi bir sunucu bulamadığı anlamına gelir. Genellikle sunucu kapanmıştır ve bu durum neredeyse her zaman makinenin yeniden başlatıldığına işaret eder. uptime ile kontrol edin. Eğer makine yeniden başlatılmadıysa ve pgrep tmux hala bir sunucu gösteriyorsa, bu durum soket dosyasının silindiği anlamına gelmez; çünkü -L ve -S bayrakları, sunucunun farklı bir soket üzerinde dinleme yapmasına olanak tanır. Eğer tmux'ı bu bayraklardan biriyle başlattıysanız, tmux attach komutuna da aynı bayrağı geçin. Eğer soket gerçekten yanlışlıkla silindiyse, pkill -USR1 tmux komutu sunucudan onu yeniden oluşturmasını ister; tmux kılavuzunda belirtildiği üzere, herhangi bir üst dizin eksikse bu işlem başarısız olur. Otomatik güvenlik güncellemeleri kaynaklı çekirdek güncellemelerinin geçerli olması için yeniden başlatma gerekir, ancak unattended-upgrades yalnızca Unattended-Upgrade::Automatic-Reboot etkinleştirildiğinde otomatik olarak yeniden başlatır; varsayılan değer false şeklindedir. Yeniden başlatılan bir makinede tmux oturumu kalmaz, bu nedenle herhangi bir Claude Code çalışmasını yeniden başlatabileceğiniz bir süreç olarak değerlendirin.

can't find session: claude farklıdır. tmux sunucusu çalışıyordur ancak o isimde bir oturum yoktur. tmux ls mevcut olanları gösterir.

Bağlandığınızda Claude Code'un olması gereken yerde düz bir kabuk istemi bulursanız, süreç oturum sonlanmadan bitmiş demektir. dmesg -T | tail dosyasında Out of memory: Killed process 4821 (claude) gibi bir satır olup olmadığını kontrol edin; bu, belleğin yetersiz kalması nedeniyle sürecin sonlandırıldığını (OOM kill) doğrular. İstem üzerindeki kabuk geçmişinde başka çıkış mesajları olup olmadığına bakın.

Geri gelen pencerenin boyutunun yanlış olması, kenarlardan kesilmesi veya etrafında boşluk kalması, iki istemcinin farklı boyutlarda bağlı olduğu anlamına gelir. Varsayılan olarak tmux 3.4, bir pencereyi en son etkinlik gösteren istemciye göre boyutlandırır (window-size latest); bu nedenle 200 sütun genişliğinde bağlı olan dizüstü bilgisayarınız ile 40 sütun genişliğindeki telefonunuz pencereyi sırayla yeniden boyutlandırır. Bağlanırken diğerlerini ayırın: tmux attach -d -t claude.

FAQ

Claude Code uygulamasını VPS yerine doğrudan telefonumda çalıştırabilir miyim?

Terminal CLI, Android veya iOS üzerinde desteklenmemektedir. Ekim 2026 itibarıyla desteklenen platformlar macOS, Windows, Ubuntu 20.04 veya üzeri, Debian 10 veya üzeri ve Alpine 3.19 veya üzeri olup en az 4 GB RAM gerektirmektedir. Android ve iOS bu listede yer almamaktadır. Ayrıca telefonlar uygulamaları uyku moduna alır ve ağ adreslerini sürekli değiştirir; uzun süreli bir aracı (agent) çalışması bu duruma tolerans gösteremez. Uygulamayı bir sunucuda çalıştırın ve telefonu yalnızca görüntüleme aracı olarak kullanın.

Uygulamayı kapatırsam veya sinyal kesilirse oturum devam eder mi?

Evet, bu işi iki ayrı bileşen yapar. tmux, süreci sunucuda çalışır durumda tutar, böylece bağlantı koptuğunda hiçbir şey sonlanmaz. mosh, bağlantının kendisini adres değişikliği boyunca canlı tutar; bu sayede Wi-Fi'dan mobil veriye geçiş yapmak yeniden bağlanmanızı bile gerektirmez. tmux olmadan düz SSH kullanıldığında, kopan bir bağlantı SIGHUP sinyali gönderir ve Claude Code görev ortasında durur.

mosh neden bağlanıyor ancak hiçbir şey göstermiyor?

Başarıyla gerçekleşen ancak Nothing received from server on UDP port 60001. ile takılı kalan bir oturum, istemcinin o UDP portu üzerinden mosh-server adresine ulaşamadığı anlamına gelir; bu durum genellikle bir güvenlik duvarının 60000 ile 61000 arasındaki UDP portlarını engellediğini gösterir. Bu aralığı ufw üzerinde açın ve çoğu panelde ayrı bir kontrol mekanizması olan sağlayıcınızın ağ güvenlik duvarında da tekrar tanımlayın. Eğer mosh bunun yerine mosh-server bulunamadı hatası veriyorsa, sunucuda paket eksiktir veya giriş PATH dosyanızda bu yol tanımlı değildir: sudo apt install mosh ile paketi yükleyin veya mosh --server=/usr/bin/mosh-server you@server kullanın.

Esc tuşu olmayan bir klavyeden Claude Code işlemini nasıl keserim?

Bir tuş satırı ekleyin. Termux, ~/.termux/termux.properties dosyasında extra-keys ile bir satır yapılandırır; Termius ve Blink ise ayarlarından düzenleyebileceğiniz bir satır sunar. Esc, devam eden bir yanıtı keser ve yapılan işi korur. Ctrl+C de kesme işlemi yapar ancak boş bir komut satırında iki kez basıldığında Claude Code'dan çıkar, bu yüzden öncelikle Esc tuşunu kullanın.

SSH'ı internete açmak bunun için yeterince güvenli mi?

Parola kimlik doğrulaması kapalıyken, başarılı olabilecek tek kimlik bilgisi cihazlarınızdan asla ayrılmayan bir anahtardır; bu, yeniden oluşturabileceğiniz bir makine için makul bir risktir. Her cihaza kendi anahtarını verin, böylece kaybolan bir telefon size authorized_keys dosyasında yalnızca bir satıra mal olur. Eğer genel bir port üzerinden yanıt vermek istemiyorsanız, sunucuyu WireGuard arkasına alın ve sshd'nin yalnızca tünel adresi üzerinden dinleme yapmasını sağlayın.

Bu yazı işinize yaradı mı?