SSD Nodes Learn 8GB RAM — $66/سنة
الأدلة Matt Connorبقلم Matt Connor · آخر تحديث في 2026-08-01

استخدم Claude Code من هاتفك عبر VPS

شغّل Claude Code داخل tmux على VPS، واتصل به من هاتفك عبر SSH. تعلّم إعداد مفاتيح SSH وmosh وtmux، وإصلاح مشكلات لوحة المفاتيح والاتصال المتقطع.

Claude Code من هاتفك: كيف يعمل فعليًا

Claude Code من هاتفك ليس تطبيقًا للهاتف المحمول. يعمل Claude Code على VPS (خادم افتراضي خاص)، داخل جلسة tmux تظل مفتوحة. ويفتح هاتفك اتصال SSH (صدفة آمنة) بهذه الجلسة طوال فترة عرضك لها. عند إغلاق التطبيق، يواصل الوكيل العمل، لأن العملية لم تكن تعمل على الهاتف أصلًا.

هذا الفصل هو أساس التصميم كله. يعلّق نظام تشغيل الهاتف التطبيق بعد ثوانٍ من الانتقال بعيدًا عنه، لذلك تتوقف أي مهمة طويلة بدأت على الهاتف. ويحصل الهاتف أيضًا على عنوان شبكة جديد في كل مرة تنتقل فيها من wifi إلى بيانات الهاتف المحمول. تختفي المشكلتان عند تشغيل العملية على خادم، بينما يكتفي الهاتف بعرض الشاشة.

تحتاج إلى أربعة عناصر على الخادم: tmux للاحتفاظ بالجلسة، ومفاتيح SSH لتسجيل الدخول، وmosh للتعامل مع تغيّرات الشبكة، وClaude Code نفسه. أما على الهاتف، فتحتاج إلى تطبيق طرفية واحد يحتوي على صف مفاتيح يمكنك الوصول إليه.

ما تحتاج إليه على VPS

يكفي جهاز Ubuntu 24.04 صغير لأجزاء SSH وtmux. يحتاج Claude Code إلى موارد أكبر. ووفقًا للمتطلبات الرسمية حتى July 2026، يجب أن يكون النظام Ubuntu 20.04 أو أحدث، وأن يعمل على معالج x64 أو ARM64، مع ذاكرة RAM بسعة 4 GB أو أكثر. يمكن لخطة بسعة 1 GB تثبيته، لكنها تفقد العملية بسبب النواة عند زيادة الحمل. يحتاج Claude Code أيضًا إلى حساب Claude مدفوع (Pro أو Max أو Team أو Enterprise)، أو إلى حساب Console مع إمكانية الوصول إلى API، لأن خطة Claude.ai المجانية لا تتضمنه.

جهّز الجهاز باستخدام مستخدم عادي لديه sudo، وليس باستخدام root. إذا كان الخادم جديدًا، فنفّذ أولًا خطوات الدقائق العشر الأولى على VPS جديد، لأن تغييرات SSH اللاحقة في هذا الدليل تصبح أسهل بعد إنشاء المستخدم وجدار الحماية.

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

يضع برنامج التثبيت الملف التنفيذي في ~/.local/bin/claude، ويطبع claude --version سطرًا مثل 2.1.211 (Claude Code). إذا طبع command not found، فهذا الدليل غير موجود بعد في PATH: سجّل الخروج، ثم سجّل الدخول مرة أخرى، وبعد ذلك تحقّق باستخدام command -v claude. يطبع claude doctor تشخيصات التثبيت والإعدادات من دون بدء جلسة.

سجّل الدخول مرة واحدة الآن من جهاز محمول، قبل الاعتماد على الهاتف. شغّل claude داخل دليل مشروع واتبع مطالبة تسجيل الدخول. تتطلب العملية فتح URL في متصفح، ثم إعادة رمز إلى الطرفية. تنفيذ ذلك باستخدام تطبيقين على شاشة الهاتف بطيء. نفّذه مرة واحدة باستخدام لوحة مفاتيح حقيقية، وستبقى بيانات الاعتماد على الخادم.

شغّل Claude Code داخل tmux حتى لا يؤدي انقطاع الاتصال إلى إيقافه

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

افصل الجلسة باستخدام Ctrl-b ثم d. يطبع tmux الرسالة [detached (from session claude)] ويعيدك إلى shell. يمكنك الآن إغلاق التطبيق أو فقدان الإشارة أو وضع الهاتف في جيبك. ستستمر اللوحة في العمل.

tmux ls
tmux attach -t claude

يطبع tmux ls سطرًا واحدًا لكل جلسة، مثل claude: 1 windows (created Thu Jul 30 09:14:02 2026). يعيدك tmux attach -t claude إلى الموضع الذي تركته فيه تمامًا، بما في ذلك التعديل غير المكتمل.

يعمل ذلك لأن tmux يشغّل عملية خادم مستقلة، ويكون كل من shell وClaude Code تابعين لذلك الخادم، وليس sshd. عند انتهاء اتصال SSH، ترسل النواة إشارة قطع الاتصال، SIGHUP، إلى العمليات المرتبطة بذلك الاتصال، ولا يكون خادم tmux من بينها. من دون tmux، يؤدي قفل الشاشة نفسه الذي يقطع اتصالك إلى إيقاف Claude Code أثناء تنفيذ استدعاء أداة.

تشغيل Claude Code على VPS داخل tmux يشرح تخطيط الجلسة بمزيد من التفصيل.

شغّل tmux على الخادم، وليس على الهاتف. تؤدي كتابة tmux داخل جلسة أنت متصل بها بالفعل إلى طباعة sessions should be nested with care, unset $TMUX to force، ويؤدي تشغيله بالقوة إلى وجود مفتاحي بادئة يتنافسان.

التشغيل التلقائي عند كل تسجيل دخول

سرعان ما يصبح إدخال أمر الإرفاق باستخدام لوحة مفاتيح تعمل باللمس مزعجًا. أضف ما يلي إلى نهاية ~/.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 إذا كانت موجودة، وينشئها إذا لم تكن موجودة. بذلك يغطي أمر واحد الحالتين. يستبدل exec غلاف تسجيل الدخول بـ tmux، لذلك يؤدي الخروج من tmux إلى إغلاق الاتصال بدلًا من إعادتك إلى موجه أوامر فارغ. عندما تحتاج إلى غلاف عادي، تجاوز الملف: ssh you@server -t "bash --noprofile".

ضعه في ~/.profile وليس في ~/.bashrc. يُنفَّذ ~/.bashrc أيضًا في الجلسات غير التفاعلية، لذلك تتعطل عمليات نقل الملفات: يقرأ scp وsftp المخرجات غير المتوقعة باعتبارها بيانات بروتوكول، ويفشلان مع Received message too long. يُنفَّذ ~/.profile في أغلفة تسجيل الدخول فقط، وهذا ما تكون عليه جلسة SSH التفاعلية.

يُستخدم ~/.profile أيضًا حيث يضيف Ubuntu ~/.local/bin إلى PATH. إذا كان claude يعمل مباشرة بعد تسجيل الدخول، لكن غلاف داخل tmux يعرض command not found، فذلك الترتيب هو السبب. لذلك ابدأ tmux من غلاف تسجيل دخول كما سبق، بدلًا من تشغيله من نص برمجي يتجاوز profile.

يدعم كلا التطبيقين SSH وmosh، ويخزّنان المفاتيح داخل التطبيق. يكمن الاختلاف في الواجهة.

يعتمد Blink Shell على الأوامر. اكتب عند موجه الأوامر ssh you@server أو mosh you@server، باستخدام الصيغة نفسها المستخدمة في الطرفية على سطح المكتب. افتح الإعدادات بكتابة config، وينشئ لك قسم Keys زوجًا من المفاتيح.

يعتمد Termius على النماذج. املأ بيانات المضيف، ثم غيّر اتصال ذلك المضيف من SSH إلى Mosh ضمن تفاصيل المضيف. يتضمن Termius تنفيذًا خاصًا به لـ mosh، ويدعم mosh 1.3.0 والإصدارات الأحدث، لذلك يجب تثبيت الحزمة mosh على الخادم.

أنشئ المفتاح داخل التطبيق في كلتا الحالتين، ولا تنسخ مفتاحًا خاصًا موجودًا إلى الهاتف مطلقًا. يعرض التطبيق الجزء العام من المفتاح، وهو السطر الوحيد الذي تضيفه إلى ~/.ssh/authorized_keys على الخادم. يشرح مفاتيح SSH لكل جهاز وكيفية إبطال أحدها طريقة التسمية وخطوة الإبطال، وهذه الخطوة أهم للهاتف منها للحاسوب المحمول.

فعّل قفل التطبيق الطرفي باستخدام المقاييس الحيوية أو رمز المرور الخاص به. من دونه، يكون الهاتف غير المقفل بمثابة جلسة shell مفتوحة على خادمك طوال بقاء الشاشة مضاءة.

Android: Termux

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

يوفّر Termux حزمتَي OpenSSH وmosh في مستودعه الخاص، لذلك تعمل ssh وssh-keygen وmosh كما تعمل على حاسوب مكتبي. أضف سطر المفتاح العام المطبوع إلى ~/.ssh/authorized_keys على الخادم، ثم اتصل باستخدام mosh you@server.

لا تحتوي لوحة المفاتيح الظاهرة على شاشة Android على مفتاح Esc أو مفتاح Ctrl، ويحتاج Claude Code إلى كليهما. يستطيع Termux عرض صف مفاتيح خاص به. أضف سطرًا واحدًا إلى ~/.termux/termux.properties:

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

ثم شغّل termux-reload-settings، وسيظهر الصف فوق لوحة المفاتيح. وتعيد عملية التحميل نفسها التقاط خط TrueType أحادي المسافة الموضوع في ~/.termux/font.ttf.

قد يوقف Android تطبيق Termux أثناء بقائه في الخلفية، ولا يترتب على ذلك هنا سوى إعادة الاتصال. توجد الجلسة والوكيل على الخادم.

لماذا تتجمد الطرفية عند مغادرة شبكة wifi، وما الذي يصلحه mosh؟

اتصال SSH هو اتصال TCP (بروتوكول التحكم في النقل)، ويُعرَّف اتصال TCP بالعنوانين والمنفذين معًا. عند الخروج من نطاق wifi، يحصل الهاتف على عنوان جديد من شبكة الهاتف المحمول، ولذلك لا يعود الاتصال القديم يطابق أي شيء على أي من الطرفين. لا يُعلَن عن ذلك. تتوقف الطرفية ببساطة عن الاستجابة إلى أن يتخلى TCP عن المحاولة، ثم يطبع ssh الرسالة client_loop: send disconnect: Broken pipe. لإنهاء الجلسة المتجمدة فورًا، اضغط Enter، ثم ~، ثم ..

يزيل mosh (الطرفية المحمولة) سبب التعطل هذا. يستخدم SSH مرة واحدة لتسجيل الدخول وبدء عملية mosh-server، ويقرأ منفذ UDP (بروتوكول مخطط بيانات المستخدم) الذي اختاره الخادم، ثم يغلق اتصال SSH. بعد ذلك، يتبادل الطرفان مخططات بيانات UDP موثقة بمفتاح جلسة مشترك، ولذلك تُعرَّف الجلسة بهذا المفتاح، لا بعنوانك. ويستمر الاتصال عند الحصول على عنوان جديد. يعرض mosh أيضًا ما تكتبه محليًا، ويعيد رسم الشاشة عندما يختلف الخادم مع ذلك، ولهذا يظل قابلًا للاستخدام عبر اتصال محمول بطيء.

يستخدم mosh منفذ UDP بين 60000 و61000، ولذلك افتح هذا النطاق:

sudo ufw allow 60000:61000/udp
sudo ufw status

يتضمن فتح المنافذ باستخدام ufw بقية إعدادات جدار الحماية. إذا كان موفر الخدمة يتيح جدار حماية منفصلًا للشبكة في لوحة التحكم، فأضف النطاق نفسه هناك أيضًا، لأن قاعدة ufw لا يمكنها التأثير في عامل تصفية موجود أمام الجهاز.

هناك مشكلتان شائعتان في mosh. إذا نجح تسجيل الدخول ثم تعلّق، وظهرت الرسالة Nothing received from server on UDP port 60001.، فهذا يعني أن نطاق UDP محجوب في مكان ما بين الهاتف والخادم. وإذا أبلغ الاتصال بأن mosh-server غير موجود، فهذا يعني أن الحزمة مفقودة على الخادم أو غير موجودة في PATH الخاص بتسجيل الدخول. ثبّت الحزمة، أو حدّد مسارها مباشرة باستخدام mosh --server=/usr/bin/mosh-server you@server.

يرفض mosh أيضًا العمل عندما لا تكون لغة تسجيل الدخول بترميز UTF-8، ويعرض الرسالة التالية: mosh-server needs a UTF-8 native locale to run. أصلح اللغة المحلية على الخادم، لا على الهاتف.

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

هناك أمران لا ينفذهما mosh. يذكر ملف README الخاص به أن mosh لا يدعم إعادة توجيه X أو الاستخدامات غير التفاعلية لـ SSH، بما في ذلك إعادة توجيه المنافذ. لذلك، لا يزال عرض تطبيق ويب بدأه Claude Code يتطلب استخدام ssh -L 8080:127.0.0.1:8080 you@server العادي. كما أنه يزامن الشاشة المرئية فقط، ولذلك لا يملك سجل تمرير خاصًا به. لا يسبب هذا القيد مشكلة هنا، لأن tmux يحتفظ بسجل التمرير: يؤدي Ctrl-b ثم [ إلى الدخول في وضع النسخ، وتؤدي عملية السحب أو مفاتيح الأسهم إلى التمرير، ويؤدي q إلى الخروج.

اجعل شاشة الهاتف قابلة للاستخدام

تنجز أربعة أسطر في ~/.tmux.conf على الخادم معظم العمل:

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

يحوّل mouse on السحب باللمس إلى تمرير، والنقر إلى تحديد لوحة أو نافذة. وهذا يغني عن معظم مفاتيح البادئة التي يصعب كتابتها. ينقل status-position top سطر حالة tmux بعيدًا عن الحافة السفلية، حيث تغطيه لوحة المفاتيح على الشاشة وشريط الاقتراحات. ويهم default-terminal لأن tmux يعرّف Claude Code، بخلاف ذلك، على أنه طرفية screen، فتظهر الألوان ورسم المربعات بجودة أسوأ من اللازم. إذا رفض tmux التشغيل بعد ذلك مع missing or unsuitable terminal: tmux-256color، فهذا يعني أن إدخال terminfo مفقود: sudo apt install ncurses-term.

تعلّم أربعة مفاتيح، وستصبح بقية الاستخدام مريحة.

  • يقاطع Esc استجابة Claude الحالية ويحافظ على العمل المنجز، لذلك هو المفتاح الذي تريد أن يكون الأقرب إلى إبهامك.
  • يقاطع Ctrl+C عملية قيد التشغيل أيضًا. عند ظهور موجه خامل، تضغطه مرة لمسح الإدخال، ومرة ثانية للخروج من Claude Code، لذلك فهو الأداة الأشد تأثيرًا.
  • يمسح Esc مرتين مسودة الموجه، وعند وجود موجه فارغ يفتح قائمة الرجوع بدلًا من ذلك.
  • لإدخال موجه متعدد الأسطر، اكتب \ ثم اضغط Enter. تعمل هذه الطريقة في كل طرفية. ولا يعمل Shift+Enter أصليًا إلا في قائمة قصيرة من طرفيات سطح المكتب، ولا تتضمن القائمة عملاء الأجهزة المحمولة.

تجنب الأجزاء المقسّمة. يبلغ عرض الهاتف في الوضع العمودي نحو 40 عمودًا، لذلك يترك التقسيم الرأسي 20 عمودًا لكل جزء، ويلتف كل diff إلى نص مربك. استخدم نوافذ tmux بدلًا من ذلك: ينشئ Ctrl-b c نافذة، وينقلك Ctrl-b n إلى النافذة التالية. أدر الهاتف إلى الوضع الأفقي عندما تحتاج إلى قراءة diff بوضوح.

تكون الجلسة الطويلة على شاشة صغيرة مشكلة سياق في الغالب، لذلك يجدر بك قراءة إدارة نافذة سياق Claude Code قبل محاولة إنجاز يوم عمل كامل من داخل قطار.

تأمين الوصول: المفاتيح فقط، بلا كلمات مرور

يحتوي الهاتف الآن على مفتاح لجهاز يحرر التعليمات البرمجية ويشغّل الأوامر. عطّل مصادقة كلمات المرور. استخدام ملف إسقاط أكثر أمانًا من تعديل sshd_config مباشرة، لأن sshd_config في Ubuntu يتضمن /etc/ssh/sshd_config.d/*.conf في بدايته، وتُستخدم أول قيمة يعثر عليها لإعداد معيّن.

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 ملف الإعداد ويطبع شيئًا عندما يكون صالحًا. إذا تخطيته، فقد يؤدي خطأ مطبعي واحد إلى فشل sshd عند إعادة التحميل. أبقِ جلستك الحالية مفتوحة واختبر من اتصال ثانٍ قبل أن تغلق أي شيء، لأن استخدام مفتاح خاطئ سيمنحك Permission denied (publickey).، ومع تعطيل كلمات المرور لن يتوفر بديل. مسار الاسترداد في هذه الحالة هو وحدة التحكم التي يوفرها مزود الخدمة.

امنح كل جهاز مفتاحه الخاص. عند فقدان الهاتف، يعني ذلك حذف سطر واحد من ~/.ssh/authorized_keys، بينما يواصل حاسوبك المحمول العمل. أما استخدام مفتاح مشترك واحد فيعني تغيير المفتاح على كل جهاز تملكه.

إذا نقلت SSH إلى منفذ آخر على Ubuntu 24.04، فتذكّر أن المستمع يتبع ssh.socket، ولذلك لا يغيّر سطر Port وحده أي شيء. شغّل sudo systemctl edit ssh.socket، وامسح القيمة الافتراضية باستخدام ListenStream= فارغ، ثم عيّن منفذك في السطر التالي. يشرح تأمين SSH على VPS ذلك وبقية نقاط التعرض.

يضيف fail2ban لـ SSH قدرًا قليلًا من الأمان بعد تعطيل كلمات المرور، لأن كلمة المرور التي يتم تخمينها لا يمكن قبولها أصلًا. لكنه يضيف سجلات أقل ضجيجًا، ما يجعل محاولة تسجيل الدخول الحقيقية سهلة الاكتشاف.

الخيار الأقوى هو إبقاء SSH خارج الإنترنت العام. ضع الخادم خلف شبكة WireGuard VPN تستضيفها بنفسك، وشغّل النفق على الهاتف عند الطلب، وامنح sshd قيمة ListenAddress على النفق فقط. يعمل mosh عبر النفق لأن الطرفين يستخدمان UDP. توجد ملاحظة واحدة: يضيف النفق حمولة إلى الحزم، ولذلك إذا توقفت عمليات النقل الكبيرة، فاخفض MTU (وحدة النقل القصوى) في إعداد WireGuard على الهاتف.

نقطة أخيرة بشأن العمل بهذه الطريقة. من الهاتف، توافق على طلبات الأذونات في شاشة تعرض بضعة أسطر من diff في كل مرة. هذا سبب للإبقاء على الحواجز الوقائية، لا لتعطيلها. يشرح تشغيل Claude Code بأمان على VPS حدود المستخدم والدليل التي يجدر ضبطها قبل أن تصبح طريقتك الرئيسية للدخول شاشة تعمل باللمس.

عند إعادة الاتصال ووجود مشكلة

يعني ظهور tmux attach وno server running on /tmp/tmux-1000/default أن خادم tmux لم يعد موجودًا. ويعني ذلك في الغالب أن الجهاز أعيد تشغيله. تحقق باستخدام uptime. تؤدي تحديثات النواة من التحديثات الأمنية التلقائية إلى إعادة تشغيل الجهاز. ولا تحتوي الأجهزة المعاد تشغيلها على جلسة tmux. لذلك تعامل مع أي تشغيل لـ Claude Code على أنه تشغيل يمكنك استئنافه.

يختلف can't find session: claude عن ذلك. خادم tmux قيد التشغيل، لكن هذا الاسم غير موجود. يعرض tmux ls الجلسات الموجودة فعليًا.

إذا اتصلت ووجدت موجه shell عاديًا في المكان الذي كان فيه Claude Code، فهذا يعني أن العملية انتهت من دون انتهاء الجلسة. افحص dmesg -T | tail بحثًا عن سطر مثل Out of memory: Killed process 4821 (claude). يظهر هذا السطر عندما يكون الجهاز أقل من متطلب 4 GB أثناء عملية تحرير كبيرة. إذا لم يظهر هذا السطر، فقد خرج Claude Code من تلقاء نفسه. ويحتوي سجل التمرير في shell أعلى الموجه على السبب.

إذا عادت النافذة بحجم صغير وتحيط بها مساحة فارغة، فهذا يعني أن عميلين متصلان بأحجام مختلفة. يضبط tmux حجم النافذة ليلائم أصغر عميل متصل. لا يزال الكمبيوتر المحمول يحتفظ بالجلسة بعرض 200 عمود، بينما يطلب الهاتف عرض 40 عمودًا. افصل العملاء الآخرين عند الاتصال باستخدام: tmux attach -d -t claude.

FAQ

هل يمكنني تشغيل Claude Code على الهاتف نفسه بدلًا من تشغيله على VPS؟

لا. المنصات المدعومة حتى يوليو 2026 هي macOS وWindows وUbuntu 20.04 أو أحدث وDebian 10 أو أحدث وAlpine 3.19 أو أحدث، مع 4 GB أو أكثر من RAM. لا يندرج Android وiOS ضمن هذه القائمة. كما أن الهاتف يضع تطبيقاته في وضع السكون ويغيّر عنوان الشبكة باستمرار، وهذا لا يناسب تشغيل وكيل يستمر مدة طويلة. شغّله على خادم واستخدم الهاتف لعرضه.

هل تستمر الجلسة إذا أغلقت التطبيق أو فقدت الإشارة؟

نعم، ويتولى مكوّنان منفصلان ذلك. يحافظ tmux على تشغيل العملية على الخادم، لذلك لا يتوقف شيء عند انتهاء الاتصال. ويحافظ mosh على الاتصال نفسه عبر تغيّر العنوان، لذلك لا يتطلب الانتقال من wifi إلى بيانات الهاتف إعادة الاتصال. عند استخدام SSH العادي من دون tmux، يرسل انقطاع الاتصال الإشارة SIGHUP ويتوقف Claude Code في منتصف المهمة.

لماذا يتصل mosh ثم لا يعرض شيئًا؟

يعني تسجيل الدخول بنجاح ثم توقف الاتصال مع ظهور Nothing received from server on UDP port 60001. أن UDP 60000 إلى 61000 غير مفتوح. أضف هذا النطاق إلى ufw، وأضفه مرة أخرى إلى جدار الحماية الشبكي لدى مزود الخدمة، وهو عنصر تحكم منفصل في معظم لوحات التحكم. إذا أبلغ mosh بدلًا من ذلك عن عدم العثور على mosh-server، فهذا يعني أن الحزمة غير مثبتة على الخادم: sudo apt install mosh.

كيف أقاطع Claude Code من لوحة مفاتيح لا تحتوي على مفتاح Esc؟

أضف صفًا للمفاتيح. يضبط Termux صفًا باستخدام extra-keys في ~/.termux/termux.properties، ويوفر كل من Termius وBlink صفًا يمكنك تحريره من الإعدادات. يقاطع Esc الاستجابة قيد التشغيل ويحافظ على العمل المنجز حتى ذلك الوقت. ويقاطع Ctrl+C الاستجابة أيضًا، لكن الضغط عليه مرتين عند مطالبة خاملة يؤدي إلى إنهاء Claude Code، لذا استخدم Esc أولًا.

هل يكفي فتح SSH على الإنترنت من ناحية الأمان؟

عند تعطيل مصادقة كلمات المرور، يكون المفتاح الذي لا يغادر أجهزتك هو وسيلة الاعتماد الوحيدة القادرة على النجاح، وهذا يمثل مخاطرة معقولة لجهاز يمكنك إعادة بنائه. امنح كل جهاز مفتاحًا خاصًا به، حتى لا يكلفك فقدان الهاتف سوى سطر واحد في authorized_keys. إذا كنت تفضل عدم استقبال الاتصالات على منفذ عام إطلاقًا، فضع الجهاز خلف WireGuard واجعل sshd يستمع على عنوان النفق.