حل المشاكل
الصفحة دي بتغطّي مشاكل Mobile SSH الشائعة والفحوص الأولى اللي المفروض تعملها قبل ما تغيّر إعدادات SSH على جانب السيرفر.
مش قادر تتصل
اتأكّد من:
- إن الجهاز عنده اتصال شبكة.
- إن اسم مضيف السيرفر أو عنوان IP صح.
- إن بورت SSH صح، وغالبًا
22. - إن مافيش جدار ناري أو VPN أو شبكة المشغّل أو شبكة Wi-Fi بتحجب البورت.
- إن سيرفر SSH شغال وبيقبل الاتصالات من الشبكة اللي إنت بتستخدمها.
لو نفس المضيف شغال من جهاز تاني، قارن بالظبط المضيف والبورت واسم المستخدم والمفتاح ومسار الشبكة.
هوية السيرفر محتاجة مراجعة
النظامين بيفحصوا هوية خادم SSH قبل إرسال البيانات السرية. بيحتاج مفتاح جديد على iOS تأكيد البصمة ثم الثقة والاتصال من جديد. خيار Android الإعدادات ← عام ← الأمان ← قبول هويات SSH الجديدة تلقائيًا مفعّل بشكل افتراضي: يُحفظ المفتاح الخام الأول، ويجب أن تطابقه الاتصالات اللاحقة. عطله لمراجعة البصمات قبل الاتصال.
قارن بصمة SHA-256 للمفتاح الجديد أو المتغير مع المسؤول عبر قناة موثوقة. قد يعني التغيير استبدال الخادم أو الوصول إلى خادم غير متوقع؛ متمسحش الهوية القديمة حتى تتحقق. راجع الهويات في الإعدادات. مش بتتجاوز العناوين البديلة والوسطاء التحقق.
Android بيدعم سلطات شهادات المضيف والإلغاءات محددة النطاق. السلطات المجهولة والشهادات المنتهية أو الغلط والمفاتيح الملغاة بتفضل ممنوعة حتى مع قبول أول مرة تلقائيًا. على iOS، الإعدادات ← هويات السيرفرات ← استيراد المفاتيح الملغاة بيقبل OpenSSH @revoked Ed25519/ECDSA محدد النطاق. لو اللصق فيه إدخال مش مدعوم، كله بيترفض؛ CA والشهادات وRSA وأسماء المضيف المجزأة مش مدعومين. الإلغاء بيغلب الثقة القديمة في اتصال جديد أو معاد، بس مش بيقفل الموجود. الهويات والإلغاءات مش في النسخ. على iOS راجع السيرفر المجهول في التطبيق الرئيسي قبل الرفع بإضافة المشاركة.
مش قادر تتصل عن طريق وسيط
راجع عنوان وبيانات كل وسيط محفوظ وتأكد أن الموبايل يصل للأول. يلزم وصول كل مضيف لاحق من سابقه. يجب السماح بتحويل TCP للأمام بما يشمل قيود permitopen. ينبغي أن بيستخدم المسار SSH بلا حلقات وبحد أقصى ثماني قفزات بعد التوسيع.
مش بيرجع وسيط محذوف أو غير محلول إلى اتصال مباشر. أصلح المسار المحفوظ ثم اتصل. تفصل حالة الاتصال وسجل Android القفزة الفاشلة عن الخادم النهائي.
فشل المصادقة
اتأكّد من:
- كتابة اسم المستخدم.
- كلمة السر أو عبارة مرور المفتاح.
- إذا كان السيرفر بيسمح بتسجيل الدخول بكلمة السر أو بالمفتاح أو الاتنين.
- إذا كان المفتاح الخاص بيطابق مفتاح عام في
authorized_keysبتاع مستخدم السيرفر. - إذا كان ملف المفتاح اتستورد كامل، بما في ذلك سطرَي الترويسة والتذييل.
للمفاتيح الخاصة المتشفّرة، دخّل عبارة المرور في خانة كلمة السر/عبارة المرور.
على Android بتحتاج أوامر ssh أو git البعيدة تفعيل تمرير وكيل SSH للخادم المحفوظ وسماح الخادم بالتمرير. مش بيبتعرض غير مفاتيح محفوظة قابلة للاستخدام. قد بيوقف طلب سماح/رفض أو مفتاح أمان معلق الطرفية والنقل والأنفاق لده الاتصال حتى 30 ثانية؛ رد داخل التطبيق أو من إشعاره.
فشل استيراد المفتاح الخاص
استيراد المفتاح الخاص بيستخدم منتقي ملفات النظام. لو الاستيراد فشل:
- اتأكّد إن الملف المختار مفتاح خاص، مش ملف
.pubعام. - افتح الملف في محرّر نصوص موثوق واتأكّد إنه فيه كتلة المفتاح الكاملة.
- جرّب تلصق المفتاح يدوي في خانة المفتاح الخاص.
- اتأكّد إن نوع المفتاح مدعوم: Ed25519 أو ECDSA (P-256/384/521) أو RSA على Android؛ وEd25519 أو ECDSA على iOS. أما DSA (
ssh-dss) فمش شغال على أي منهم، وiOS مابيدعمش RSA — اعمل مفتاح Ed25519 بدالها.
مفتاح الأمان مش بيرد على Android
Android بيدعم بيانات CTAP2/FIDO2 ed25519-sk وecdsa-sk عبر USB أو NFC. استخدم المفتاح المادي اللي عمل ملف البيانات المستورد. بيحتاج USB دعم المضيف والإذن؛ ويجب تفعيل NFC وإبقاء المفتاح قرب الموبايل حتى الاكتمال. أدخل PIN عند طلبه ثم المس المفتاح.
السيرفر محتاج OpenSSH 8.2 أو أجدد ويسمح بخوارزمية sk-* اللي اخترتها. مفاتيح U2F بس واكتشاف البيانات المقيمة مش مدعومين. مهلة الدخول ممكن تخلص وانت بتدور على المفتاح، فجهزه الأول. للطلب في الخلفية افتح إشعار المفتاح أو ارجع للتطبيق. iOS مش بيدعم المصادقة بمفتاح أمان حقيقي.
إدخال الكيبورد متأخّر أو متغيّر
Android بيبعت الإدخال مباشرة مع تعطيل التصحيح والتوقعات. iOS بيشغّل الإملاء والاقتراحات بشكل افتراضي لدعم الصوت وتصحيح السطر الحالي. لو غيّر إدخال الصدفة بشكل غير متوقع، عطله وراجع اقتراحات الكيبورد، ثم افتح لوحة جديدة لتطبيق التغيير.
استخدم صف المفاتيح الإضافية لـ ESC وTAB وCTRL والأسهم وHOME وEND وPGUP وPGDN. الشبكة الواقفة ممكن تأخر الإدخال. عنوان Android بيقول مفيش رد أو متبعتش؛ الكتابة وقت الاتصال من جديد بتتساب ومش بتتكرر في شيل جديد. استنى الاتصال وراجع المحث واكتب المطلوب بس تاني.
تمرير tmux مش زي ما تتوقّع
Mobile SSH بيغيّر سلوك التمرير حسب حالة الترمنال. في tmux أو برامج الشاشة البديلة التانية، إيماءات التمرير ممكن تبعت أوامر وضع نسخ tmux بدل ما تمرّر السجل المحلي. لو وضع ماوس tmux مفعّل، التطبيق بيبعت سلاسل هروب عجلة الماوس.
لو التمرير حاسس إنه غلط:
- جرّب تفعّل أو تعطّل وضع ماوس tmux على السيرفر البعيد.
- استخدم
PGUPوPGDNمن صف الأزرار الإضافي. - اضغط مرتين على البانل لملء الشاشة قبل ما تمرّر خرج كثيف.
- افصل واربط بـ tmux تاني لو حجم الترمنال البعيد باين قديم.
على Android يخرج التمرير للأسفل من وضع نسخ tmux المدار بالتطبيق إذا ظهر مؤشر النسخ القياسي. التخطيطات المخصصة أو المقسمة من غير المؤشر قد بتحتاج خروجًا يدويًا. راجع الخادم والمقبس المختارين واسم الجلسة عند تبديلها.
الجلسة بتقطع بعد قفل الشاشة
على Android، Mobile SSH بيستخدم رسائل الإبقاء على الاتصال، وخدمة في المقدّمة، وقفل التنبيه، وقفل Wi-Fi، ومحاولات إعادة الاتصال علشان يقلّل الانقطاعات. مع ذلك سياسات بطارية Android ممكن لسه توقّف الشغل في الخلفية.
اتأكّد من:
- عطّل تحسين البطارية لـ Mobile SSH لو جهازك بيوقّف تطبيقات الخلفية بقوة.
- خلي Wi-Fi أو بيانات الموبايل مستقرّة أثناء الجلسات الطويلة.
- أعِد فتح Mobile SSH واضغط Active Sessions بعد فتح القفل.
- اتأكّد إن Keep sessions running in background شغّال في الإعدادات لو عايز الشيلز تعيش حتى بعد ما تقفل التطبيق من قايمة المهام.
- لو السيرفر قطع جلسة SSH، أعِد الاتصال من الشاشة الرئيسية — Continue بيعرض اللي لسه شغال، وTmux sessions بيعرض اللي مستني على السيرفر.
iOS بيوقف التطبيقات في الخلفية، فـ SSH الخام مش بيفضل مفتوح للأبد بعد تبديل التطبيق أو قفل الشاشة. مهلة قصيرة بتغطي التنقل السريع. اختار tmux أو Herdr أو Zellij في الإرفاق وقت الاتصال، أو استخدم Eternal Terminal عشان تكمل بعد الاتصال. المعدد لازم يفضل شغال على السيرفر؛ Eternal Terminal مينفعش مع مسار الوسطا.
نقل الملفات مش بيتصفّح ملفات الموبايل
Mobile SSH مابيطلبش أي صلاحية تخزين على Android. بدل كده، البانل المحلي بيعرض مجلد واحد إنت بتسمح بيه من منتقي المجلدات بتاع النظام — ولو فاضي، استخدم Pick folder علشان تختار واحد. والصلاحية بتفضل، فدي خطوة بتتعمل مرة واحدة.
لو الملفات البعيدة بتتحمّل بس المحلية لأ، اتصال SSH تمام وإنت ببساطة لسه ماسمحتش بأي مجلد.
اللوحة المحلية على iOS بتبدأ في مستندات التطبيق. هاتفي ← اختيار مجلد محلي بيختار ويفتكر مجلد تاني في «الملفات». لو المزود أو الإذن مش متاح، اختار المجلد تاني أو ارجع لمجلد التطبيق. تنزيلات التطبيق في على الـ iPhone الخاص بي؛ الملفات الخارجية بتفضل عند مزودها. النسخة الاحتياطية مش بتنقل إذن المجلد.
فشل الرفع أو التنزيل
اتأكّد من:
- إن جلسة SSH لسه متصلة.
- إن المجلد البعيد موجود.
- إن المستخدم البعيد عنده صلاحية قراءة المسار أو الكتابة فيه.
- إن الوجهة المحلية قابلة للكتابة.
- إن فيه مساحة فاضية كفاية على الجهاز.
- إن الشبكة مستقرّة لعمليات النقل الكبيرة.
فشل تحويل البورت
اتأكّد من:
- إن البورت المحلي بين
1و65535. - إن البورت المحلي مش مستخدم بالفعل.
- إن سلسلة النفق هي
PORTأوLOCAL:REMOTEHOST:REMOTE. - إن المضيف البعيد والبورت البعيد ممكن توصلهم من سيرفر SSH.
- إن سيرفر SSH بيسمح بتحويل TCP.
VPN أو البروكسي مش بينقل ترافيك على Android
- شغّل الإعداد المقصود من VPN ووافق على طلب Android. تشغيل VPN الجهاز يستبدل السابق؛ استخدم SOCKS5 محليًا إذا وجب إبقاء VPN آخر.
- في SSH VPN راجع الخادم ووسطاءه وهويته وإذن TCP واختيار التطبيقات والمواقع. بينقل SSH TCP وDNS، لا UDP العام.
- اضبط عميل SOCKS5 بعنوان الحلقة المحلية والمنفذ وكلمة المرور وDNS البعيد. تشغيل الوكيل مش بيغيّر توجيه كل التطبيقات تلقائيًا.
- في WireGuard راجع المصافحة والمفاتيح و
AllowedIPsوDNS. في Shadowsocks طابق تشفير الخادم وكلمة مروره وتحقق من ترحيل UDP لـ DNS. - في OpenVPN استخدم ملفًا مكتفيًا مدعومًا وتحقق من CA وهوية الخادم والبيانات، ووفر VPN DNS للنفق الكامل. أصلح أخطاء المصادقة أو الشهادة ثم أوقف الإعداد وشغله.
ممكن يفضل SSH VPN وShadowsocks وOpenVPN حجب الحركة الملتقطة أثناء الاتصال من جديد بدل تحويلها مباشرة. الإيقاف بينهي الحماية. مش بيتجاوز VPN قيود الإنترنت اللي بيفرضها مزود خادمه أو المسؤول.
النسخة الاحتياطية مرجعتش كل حاجة
راجع معاينة الاستيراد وخيار دمج أو استبدال. الأقسام الغائبة في نسخة قديمة أو جزئية بتفضل كما هي. تشمل النسخ الكاملة التفضيلات المدعومة، ويضيف Android إعدادات VPN والوكيل. ليست كل عناصر المنصة قابلة للنقل إلى iOS، وقد ترفض الإصدارات القديمة تنسيقات النسخ الكاملة الجديدة.
بتفضل هويات المضيف وأذونات النظام والمجلد محلية للجهاز. تحقق من المضيف وامنح صلاحيات المجلد وVPN بالجهاز الجديد. بيانات مفتاح الأمان لا تغني عن المفتاح المادي. استيراد إعداد مش بيشغّل VPN؛ راجعه قبل التشغيل.
سطح المكتب البعيد مش متاح أو حجمه مش بيتغير
افتح العارض من جلسة SSH متصلة وتحقق من السماح بتحويل TCP المحلي. في Linux اتبع رسالة الحزم الناقصة لتثبيت برامج سطح المكتب وVNC. لا يقدر Android عكس وحدة Wayland؛ استخدم سطحًا بشكل افتراضي مدعومًا.
على macOS افتح مشاركة الشاشة في إعدادات Mac. Android بيدعم مصادقة حساب Mac؛ iOS محتاج تفتح وصول VNC بالباسورد التقليدي في مشاركة الشاشة، وتستخدم باسورد المشاركة مش باسورد حساب Mac. العارض بيوري الشاشة الموجودة، والدقة ممكن تحتاج تتغير على Mac. السطح الافتراضي يتغير حجمه مباشرة بس لما السيرفر يدعم؛ إعادة تشغيل سطح التطبيق عمله محتاجة تأكيد وبتقفل برامجه. سطح المكتب بيفضل شغال بعد ما تسيب العارض.
سجلات التصحيح
المنصتين بيسجّلوا حاجات مختلفة، فاختار اللي بيناسب مشكلتك.
Android — الترمنال والرسم. فعّل الإعدادات ← Debugging ← Show Debug and Logs buttons، وبعدين استخدم زر Debug اللي هيظهر في الشاشة الرئيسية. بيسجّل أحداث الترمنال، وأحجام بيانات SSH، وإدخال اللمس، وسلوك تغيير الحجم، ودورة حياة الأنفاق. وبدء التسجيل بيحذّرك الأول إنه بيلتقط كل زرار بتدوس عليه، وكلمات السر ضمنهم. ولما توقّفه بيكتب أرشيف في مجلد التنزيلات بتاعك.
iOS — الاتصالات وإعادة الاتصال. شغّل الإعدادات ← Diagnostics ← Record debug log. بيسجّل كل عنوان اتصل بيه وسبب فشله، ومحاولات إعادة الاتصال وفترات الانتظار بتاعتها، والاتصالات اللي وقعت، و«الطرف التاني بطّل يرد على keepalives»، وتغيّرات الشبكة، وأوامر tmux وأخطاءها. والإعدادات بتعرض عدد الأسطر لحظيًا علشان تتأكد إنه بيسجّل، وExport Debug Log بيشاركه كملف نصي. وهو متخزّن في الذاكرة وبيغطّي جلسة التطبيق الحالية بس.
راجع أي سجل أو أرشيف تصحيح قبل ما تشاركه. هي مخصّصة لحل المشاكل وممكن تكشف أسماء السيرفرات، والعناوين، والتوقيتات، أو تفاصيل بيئة تانية — وعلى Android، أي حاجة كتبتها.