استكشاف الأخطاء
تغطّي هذه الصفحة مشكلات 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 بعد إلغاء القفل.
- تحقّق من تفعيل إبقاء الجلسات تعمل في الخلفية في الإعدادات إن أردت أن تصمد الأصداف بعد إزاحة التطبيق من قائمة التطبيقات الأخيرة.
- إذا قطع الخادم جلسة 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 — الطرفية والعرض. فعّل Settings ← Debugging ← Show Debug and Logs buttons، ثم استخدم زر Debug الذي يظهر على الشاشة الرئيسية. يسجّل أحداث الطرفية، وأحجام بيانات SSH، وإدخال اللمس، وسلوك تغيير الحجم، ودورة حياة الأنفاق. وبدء التسجيل يحذّرك أولًا بأنه يلتقط كل مفتاح تكتبه، بما في ذلك كلمات المرور. وإيقافه يكتب أرشيفًا في مجلد التنزيلات لديك.
iOS — الاتصالات وإعادة الاتصال. فعّل Settings ← Diagnostics ← Record debug log. يسجّل كل عنوان جرى الاتصال به وسبب فشله، ومحاولات إعادة الاتصال وفترات تراجعها، والاتصالات المنقطعة، و«peer stopped answering keepalives»، وتغيّرات الشبكة، وأوامر tmux مع أخطائها. وتعرض الإعدادات عدّاد أسطر حيًّا لتتأكّد من أنه يسجّل، ويشارك Export Debug Log السجل كملف نصي. وهو محفوظ في الذاكرة ويغطّي جلسة التطبيق الحالية فقط.
راجِع أيّ سجل أو أرشيف تصحيح قبل مشاركته. فهي مخصّصة لاستكشاف الأخطاء وقد تكشف أسماء الخوادم، والعناوين، والتوقيتات، أو تفاصيل بيئة أخرى — وعلى Android، كل ما كتبته.