1. تطبيقات Claude وأربعة مسارات عمل عن بُعد
Claude Code هو وكيل البرمجة من Anthropic: يقرأ المشاريع ويحرر الملفات ويشغّل الأوامر والاختبارات. ما يسميه كثيرون Claude CLI هو برنامج سطر الأوامر نفسه، claude. أما Claude Desktop فيوفر Chat وCowork وCode؛ ويتضمن Code بالفعل Claude Code، لذلك لا يلزم تثبيت CLI منفصل.
- شغّل claude على VPS عبر SSH: تبقى النواة والمشروع على VPS بينما يظهر النص في طرفيتك المحلية.
- صِل Claude Desktop المحلي ببيئة SSH: تبقى الواجهة الرسومية محلية بينما تعمل نواة Claude Code على VPS.
- استخدم Remote Control: تستمر عملية Claude Code على VPS بينما توجّهها من حاسوب أو هاتف أو متصفح آخر.
- استخدم Cloud Session: تعمل المهمة على بنية تديرها Anthropic لا على VPS الخاص بك.
- استخدم سطح مكتب بعيدًا كاملًا فقط عند الضرورة: RDP لـ Windows، ومشاركة الشاشة لـ macOS، وRDP/X2Go/VNC لـ Linux. لا تثبّت GUI كاملًا فقط لتجنب CLI.
2. مسارات البيانات: مزامنة الجلسة ليست مزامنة ملفات
- SSH وCLI: يقرأ VPS الملفات ويحررها وينفذ الأوامر؛ يعرض حاسوبك نص الطرفية فقط، ولا تتزامن الملفات تلقائيًا.
- Desktop محلي مع SSH: يعرض التطبيق المحلي المحادثات ومطالبات الإذن والفروقات، بينما ينفذ VPS Claude Code وGit وأوامر المشروع. تبقى الملفات البعيدة أساسًا على VPS.
- Remote Control: ينفذ VPS الشيفرة ويصل إلى الملفات، بينما تنتقل المحادثات ونشاط الأدوات عبر Anthropic API إلى أجهزتك الأخرى.
- أثناء اتصال Remote Control، يُخزن نص الجلسة على خوادم Anthropic للمزامنة؛ يبقى التنفيذ والوصول إلى نظام الملفات على VPS.
- Remote Control ليس رابطًا مباشرًا بين الأقران ولا مزامنة قرص كاملة؛ يظل استرجاع الملفات الفعلي بحاجة إلى Git أو SCP أو rsync.
3. تجهيز VPS وتأمين الوصول
- تشمل متطلبات Claude Code الحالية 4 غيغابايت من الذاكرة أو أكثر، ومعالج x64 أو ARM64، ووصول HTTPS وبلدًا أو منطقة مدعومة. يعمل استدلال النموذج في السحابة، لذلك لا يلزم GPU.
- أنشئ حسابًا عاديًا منفصلًا لكل مستخدم ولا تشغّل Claude كجذر؛ استخدم مفاتيح SSH وقيّد مصادقة كلمة المرور وعناوين المصدر.
- لا تكشف منافذ Claude أو VNC أو RDP أو خوادم التطوير الزائدة؛ يحتاج Remote Control إلى HTTPS الصادر فقط.
- ضع المشاريع في مجلدات يملكها مستخدم غير مميز؛ تمتلك العملية البعيدة أذونات مستخدم SSH نفسها بالضبط.
- تحقق من بصمة المضيف عبر وحدة تحكم VPS أو قناة موثوقة أخرى؛ لا تضبط StrictHostKeyChecking no.
# افحص مضيف Linux
cat /etc/os-release
uname -m
free -h
df -h "$HOME"
# إدخال محلي في ~/.ssh/config بعد التحقق من مفتاح المضيف
Host vps-claude
HostName 203.0.113.10
User dev
Port 22
IdentityFile ~/.ssh/id_ed25519
IdentitiesOnly yes
StrictHostKeyChecking yes
ServerAliveInterval 60
ServerAliveCountMax 3
# اختبر الاتصال
ssh vps-claude4. تثبيت Claude Code على VPS يعمل بـ Linux
- Ubuntu/Debian: ثبّت curl وca-certificates وgit وtmux قبل تشغيل المثبّت الأصلي الرسمي.
- Fedora/RHEL: استخدم dnf للأدوات نفسها؛ إذا لم يتوفر tmux في المستودعات المفعلة، استخدم مستودعًا معتمدًا أو screen بدل ملف ثنائي مجهول.
- Alpine: يستخدم musl ويحتاج bash وcurl وlibgcc وlibstdc++ وripgrep، ويجب ضبط USE_BUILTIN_RIPGREP على 0.
- للإنتاج توفر Anthropic أيضًا مستودعات apt وdnf وapk موقعة؛ تحقق من بصمة التوقيع الرسمية قبل الثقة بها.
# Ubuntu / Debian
sudo apt update
sudo apt install -y curl ca-certificates git tmux
# Fedora / RHEL: sudo dnf install -y curl ca-certificates git tmux
# المثبت الأصلي الرسمي (يعمل أيضًا على macOS وWSL)
curl -fsSL https://claude.ai/install.sh | bash
# افتح طرفية جديدة وتحقق
claude --version
claude doctor
# إذا لم يُعثر على الأمر
export PATH="$HOME/.local/bin:$PATH"
claude --version
# مسار مطلق لـ SSH غير التفاعلي
~/.local/bin/claude --version
# تبعيات إضافية على Alpine
apk add bash curl libgcc libstdc++ ripgrep git tmux5. Windows Server ومضيفات macOS البعيدة
- يدعم Claude Code CLI نظام Windows Server 2019 وما بعده. في PowerShell لمستخدم عادي، شغّل irm https://claude.ai/install.ps1 | iex ثم تحقق بـ claude --version و claude doctor.
- دعم CLI لـ Windows Server لا يعني أن كل ميزات Claude Desktop الرسومية تدعم نظام التشغيل نفسه؛ فضّل CLI لأعمال الخادم فقط.
- لتوصيل Desktop المحلي بمضيف Windows، ثبّت Microsoft OpenSSH Server وتحقق من SFTP وسلوك العملية البعيدة.
- على macOS استخدم المثبت الأصلي نفسه أو brew install --cask claude-code؛ يمكن استخدام Mac البعيد مباشرة عبر SSH أو كمضيف لبيئة SSH في Desktop المحلي.
6. تسجيل الدخول وبيانات الاعتماد على VPS بلا متصفح
- ابدأ claude في مجلد المشروع وانسخ رابط تسجيل الدخول إلى متصفح على حاسوبك لإتمام التفويض.
- إذا تعذر على المتصفح الوصول إلى callback على VPS، فسيعرض رمز دخول؛ الصقه في طرفية VPS عند Paste code here if prompted.
- استخدم /status لفحص المصادقة و/logout للخروج و/login للمصادقة مجددًا. يتطلب Claude Code حساب Pro أو Max أو Team أو Enterprise أو Console؛ الخطة المجانية في claude.ai لا تتضمنه.
- ANTHROPIC_API_KEY واشتراك Claude مساران منفصلان للمصادقة والفوترة؛ لا تضع مفاتيح حقيقية في المستودعات أو Dockerfiles أو اللقطات أو سجل الصدفة.
- يستهدف claude setup-token خدمات CI والنصوص؛ يمكن للرمز طلب النموذج لكنه لا ينشئ Remote Control ولا يصل إلى موصلات claude.ai.
- تُخزن بيانات اعتماد Linux عادة في ~/.claude/.credentials.json بالوضع 0600؛ لا ترفعها ولا تزامنها علنًا.
# اقرأ مفتاح API تفاعليًا في Bash حتى لا يدخل سجل الأوامر
read -rsp "Anthropic API key: " ANTHROPIC_API_KEY; echo
export ANTHROPIC_API_KEY
claude
# افحص بيانات الملف الوصفية دون قراءة السر
stat -c '%a %U %n' ~/.claude/.credentials.json7. أبقِ الجلسة حية باستخدام tmux
- أنشئ جلسة بـ tmux new -s claude-vps.
- ادخل المشروع وشغّل claude داخل tmux.
- اضغط Ctrl+B ثم D للانفصال مع بقاء العملية تعمل.
- أعد الاتصال لاحقًا بـ tmux attach -t claude-vps واسرد الجلسات بـ tmux ls.
- للحصول على نتيجة واحدة محفوظة على حاسوبك، شغّل claude -p عبر SSH غير تفاعلي وأعد توجيه الإخراج.
tmux new -s claude-vps
cd /srv/my-project
claude
# أعد الاتصال لاحقًا
tmux attach -t claude-vps
tmux ls
# شغّل ملخصًا على VPS واحفظه محليًا
ssh vps-claude 'cd /srv/my-project && ~/.local/bin/claude -p "Summarize this project"' > ./project-summary.md8. تحكم في VPS باستخدام Remote Control
ينشئ Remote Control اتصالات HTTPS صادرة فقط ولا يفتح منفذًا واردًا. تنتقل النصوص عبر خوادم Anthropic وتُخزن فيها للمزامنة، بينما تبقى الشيفرة والملفات على VPS. يمكن رفع المرفقات إلى VPS، غالبًا تحت ~/.claude/uploads/، لكن ملفات المشروع الناتجة تحتاج Git أو SCP أو rsync للاسترجاع.
- يتطلب Remote Control اشتراك Pro أو Max أو Team أو Enterprise وتسجيل دخول كامل عبر claude.ai بـ /login. لا تدعمه مفاتيح API وsetup-token وBedrock وVertex وFoundry وبعض عناوين API المخصصة.
- يجب أن يبقى VPS يعمل وأن تستمر عملية claude؛ وقد تعطّل المؤسسة الميزة أيضًا.
- قد تجعل CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC وDISABLE_GROWTHBOOK الميزة غير متاحة. إذا تجاوز مفتاح API الاشتراك، فأزله وشغّل /login مجددًا.
- استخدم claude remote-control لوضع الخادم، وclaude --remote-control "VPS Project" للحفاظ على التفاعل المحلي، أو /remote-control داخل جلسة قائمة.
- بعد التأكيد لأول مرة، يعرض الطرفية رابط الجلسة ورمز QR. افتح claude.ai/code أو استخدم تطبيق Claude بالحساب والمؤسسة نفسها.
- للجلسات المتزامنة التي لا يجب أن تحرر المجلد نفسه، فكّر في --spawn worktree.
tmux new -s claude-remote
cd /srv/my-project
# وضع الخادم
claude remote-control
# worktrees مستقلة للجلسات المتزامنة
claude remote-control --spawn worktree
# حافظ على التفاعل في طرفية VPS مع السماح بالأجهزة الأخرى
claude --remote-control "VPS Project"9. أفضل مسار رسومي: Claude Desktop محلي مع SSH
يرسل Desktop الردود ومخرجات الأدوات ومطالبات الإذن والفروقات إلى حاسوبك، بينما تبقى التحريرات وعمليات Git على VPS. تتأثر المهام الطويلة أيضًا بتجديد بيانات الاعتماد وإعادة تشغيل VPS وKillUserProcesses وتحديثات المساعد والأدوات المتصلة. إذا كان حاسوبك سيتوقف، فضّل Cloud Session بدل افتراض أن Desktop SSH سيعمل طوال الليل بثقة.
- ثبّت تطبيق Claude Desktop الرسمي على حاسوبك، وسجّل الدخول وافتح Code. توجد نسخ لـ macOS وWindows وUbuntu/Debian Linux التجريبي؛ لا يلزم Node.js أو CLI منفصل.
- افتح محدد البيئة → New environment → SSH → Add SSH connection….
- أدخل Name وSSH host (user@hostname أو Host من ~/.ssh/config) وSSH port ومسار مفتاح خاص محلي اختياري وWorktree folder اختياري.
- اختر مجلد المشروع البعيد واضغط Create environment. عند أول اتصال يثبّت Desktop النواة والمساعد تحت ~/.claude/remote/ دون sudo.
- يحتاج كل مستخدم متصل إلى نحو 1 غيغابايت فارغة ومجلد منزل قابل للكتابة والتنفيذ وغير مركب بـ noexec.
- يحتاج المضيف إلى SSH مع SFTP وصدفة عاملة ووصول شبكة وGit لميزات Git وعدة جلسات على اتصال واحد؛ MaxSessions 1 يسبب الفشل.
# إعداد قفز في ~/.ssh/config
Host devbox
HostName devbox.internal.example.com
User dev
ProxyJump bastion.example.com
# أدخل devbox في خانة SSH host في Desktop
# يختلف سلوك عميل Windows؛ راجع متطلبات system-openssh عند ProxyJump
# اختبر SFTP مستقلًا
sftp vps-claude10. تشغيل Claude Desktop داخل GUI بعيد
- يدعم Claude Desktop على Linux مرحلة beta ويتطلب Ubuntu 22.04+ أو Debian 12+ وx86_64 أو arm64 وسطح مكتب رسومي وسلسلة مفاتيح متاحة؛ تختلف هذه المتطلبات عن CLI.
- لا تشغّل claude-desktop كجذر؛ قد تمنع سلسلة المفاتيح المقفلة حفظ تسجيل الدخول.
- يتطلب Cowork إضافيًا QEMU وKVM و/dev/kvm ودعمًا افتراضيًا مرتبطًا. لا تدعم كثير من منصات VPS التمثيل المتداخل، فاستخدم Code أو CLI بدل ذلك.
- على مضيف Windows رسومي، ثبّت وسجّل الدخول عبر RDP مؤمّن؛ لا تكشف منفذ RDP 3389 للإنترنت كله.
- على Mac بعيد، استخدم مشاركة الشاشة واحمِ منفذ VNC 5900 بـ VPN أو نفق SSH بدل كشفه علنًا.
# أضف مستودع Claude Desktop الرسمي على Ubuntu / Debian
sudo curl -fsSLo /usr/share/keyrings/claude-desktop-archive-keyring.asc https://downloads.claude.ai/claude-desktop/key.asc
gpg --show-keys /usr/share/keyrings/claude-desktop-archive-keyring.asc
# البصمة: 31DDDE24DDFAB679F42D7BD2BAA929FF1A7ECACE
echo "deb [arch=amd64,arm64 signed-by=/usr/share/keyrings/claude-desktop-archive-keyring.asc] https://downloads.claude.ai/claude-desktop/apt/stable stable main" | sudo tee /etc/apt/sources.list.d/claude-desktop.list
sudo apt update
sudo apt install claude-desktop
claude-desktop
# وجّه VNC البعيد إلى الجهاز المحلي؛ لا تكشف المنفذ 5900
ssh -L 127.0.0.1:5900:127.0.0.1:5900 vps-claude11. أعِد المحادثات والملفات والمعاينات إلى حاسوبك
- للملفات النصية الصغيرة، اقرأها عبر SSH وأعد توجيه الإخراج إلى ملف محلي.
- استخدم scp للرفع والتنزيل الفردي وrsync لمزامنة المجلدات؛ تجنب --delete حتى تفهم أثره.
- استخدم Git لشيفرة المصدر حتى تبقى السجلات والفروقات والرجوع متاحة بدل نسخ المجلدات كاملة مرارًا.
- يمكن لمرفقات Remote Control الوصول إلى VPS، لكن ملفات المشروع الناتجة تحتاج Git أو SCP أو rsync للاسترجاع.
- اعرض تطبيقات الويب عبر إعادة توجيه منفذ SSH محلي بدل كشف منافذ التطوير علنًا.
# نزّل ملفًا نصيًا صغيرًا
ssh vps-claude 'cat /srv/my-project/result.md' > ./result.md
# ارفع ملفًا
scp ./input.zip vps-claude:/srv/my-project/
# نزّل ملفًا
scp vps-claude:/srv/my-project/result.md ./result.md
# ارفع محتويات مجلد
rsync -av --partial --progress ./my-project/ vps-claude:/srv/my-project/
# نزّل محتويات مجلد
rsync -av --partial --progress vps-claude:/srv/my-project/ ./my-project/
# راجع تغييرات الشيفرة على VPS
git status
git diff
# وجّه تطبيقًا على 127.0.0.1:3000 في VPS إلى العنوان المحلي نفسه
ssh -L 127.0.0.1:3000:127.0.0.1:3000 vps-claude
# ثم افتح http://127.0.0.1:300012. الحاويات والقفز والشبكات المقيدة
- استخدم ميزة Claude Code Dev Container الرسمية ووحدة تخزين مسماة للحفاظ على المصادقة والإعدادات بين عمليات البناء؛ لا تضع بيانات الاعتماد في الصورة ولا تنفذ docker commit لحاوية تحتويها.
- لا تركّب ~/.ssh كاملًا من المضيف؛ فضّل الرموز قصيرة الأجل أو مدير أسرار، وتعامل مع ملفات المشروع وإعداد Claude كتخزين منفصل.
- يحتاج Remote Control إلى HTTPS صادر فقط، لذلك لا يلزم IP عام؛ ولـ SSH استخدم قفزة أو WireGuard أو شبكة تغطية أو VPN مؤسسيًا.
- على VPS يعمل بـ Linux ويحتاج وكيلًا أو CA مؤسسيًا، اضبط HTTPS_PROXY وNODE_EXTRA_CA_CERTS في ~/.claude/settings.json؛ قد لا يقرأ Desktop SSH ملف ~/.bashrc.
- لا تعطّل التحقق من TLS لتجاوز أخطاء الشهادات.
// ~/.claude/settings.json
{
"env": {
"HTTPS_PROXY": "http://proxy.example.com:8080",
"NODE_EXTRA_CA_CERTS": "/etc/ssl/certs/example-ca.pem"
}
}
// devcontainer.json: استمرار الإعداد بين عمليات إعادة البناء
"mounts": [
"source=claude-code-config,target=/home/node/.claude,type=volume"
],
"containerEnv": {
"CLAUDE_CONFIG_DIR": "/home/node/.claude"
}13. استكشاف الأخطاء وقائمة الأمان
- اكتمل دخول المتصفح لكن الطرفية لم تكتمل: انسخ رمز الدخول من المتصفح إلى طرفية VPS؛ تفشل callbacks المحلية غالبًا عبر SSH والحاويات.
- claude غير موجود: افحص ~/.local/bin في PATH وشغّل claude doctor واستخدم المسار المطلق مع SSH غير التفاعلي.
- يقول Remote Control إن مصادقة الاشتراك مطلوبة: افحص مفاتيح API وCLAUDE_CODE_OAUTH_TOKEN وsetup-token ومزودي الطرف الثالث وBase URL المخصص وسياسة المؤسسة، ثم استخدم /login الكامل.
- يعمل SSH لكن Desktop لا ينشئ البيئة: افحص SFTP وMaxSessions وأذونات المجلد المنزلي وnoexec والقرص والوصول الصادر وإعدادات الوكيل في settings.json البعيد.
- تختفي المهمة بعد الانفصال: افحص tmux وKillUserProcesses وإعادة تشغيل VPS وتجديد الاعتماد واستبدال المساعد.
- تجنب --dangerously-skip-permissions في أنظمة الإنتاج؛ ابدأ بـ Manual أو Plan ولا تمنح إلا الأذونات اللازمة.
- إذا كان حاسوبك سيتوقف، استخدم Cloud Session أو صمّم مهمة خادمية وتجديد اعتماد مقصودًا.