সমস্যা সমাধান

এই পৃষ্ঠা Mobile SSH-এর সাধারণ সমস্যা এবং সার্ভার-সাইড SSH সেটিংস বদলানোর আগে চালানো প্রথম পরীক্ষাগুলো কভার করে।

সংযোগ করা যাচ্ছে না

পরীক্ষা করুন:

একই হোস্ট অন্য ডিভাইস থেকে কাজ করলে সঠিক হোস্ট, পোর্ট, ব্যবহারকারীর নাম, কী এবং নেটওয়ার্ক পথ তুলনা করুন।

সার্ভার পরিচয় যাচাই দরকার

দুই প্ল্যাটফর্ম পরিচয়তথ্য পাঠানোর আগে SSH সার্ভার যাচাই করে। iOS নতুন হোস্ট কীতে ফিঙ্গারপ্রিন্ট নিশ্চিত করে বিশ্বাস করে আবার যুক্ত হন চায়। Android-এর সেটিংস → সাধারণ → নিরাপত্তা → নতুন SSH পরিচয় স্বয়ংক্রিয়ভাবে গ্রহণ করুন ডিফল্ট চালু: প্রথম সাধারণ কী রাখে, পরেরগুলো মিলতে হয়। নতুন ফিঙ্গারপ্রিন্ট আগে দেখতে এটি বন্ধ করুন।

নতুন বা বদলানো কী-এর SHA-256 ফিঙ্গারপ্রিন্ট বিশ্বস্ত মাধ্যমে প্রশাসকের সঙ্গে মিলান। সার্ভার বদল বা অপ্রত্যাশিত সার্ভার হতে পারে; কারণ যাচাই না করে পুরোনো পরিচয় মুছবেন না। সেটিংসে পরিচয় দেখুন। বিকল্প ঠিকানা ও জাম্প হোস্ট যাচাই এড়ায় না।

Android সীমিত হোস্ট সার্টিফিকেট কর্তৃপক্ষ ও প্রত্যাহারও সমর্থন করে। অচেনা কর্তৃপক্ষ, মেয়াদোত্তীর্ণ/অবৈধ সার্টিফিকেট ও প্রত্যাহৃত কী স্বয়ংক্রিয় প্রথম গ্রহণেও আটকায়। iOS সেটিংস → সার্ভার পরিচয় → প্রত্যাহৃত কী আমদানি সীমিত OpenSSH @revoked Ed25519/ECDSA এন্ট্রি নেয়। অসমর্থিত এন্ট্রি মেশানো পেস্ট পুরো বাতিল হয়; CA এন্ট্রি, সার্টিফিকেট, RSA কী ও হ্যাশ করা হোস্টনাম অসমর্থিত। নতুন সংযোগ/পুনঃসংযোগে প্রত্যাহার পুরোনো বিশ্বাসকে ছাপিয়ে যায়, কিন্তু চলমান সংযোগ বন্ধ করে না। পরিচয় ও প্রত্যাহার ব্যাকআপের বাইরে। iOS Share Extension-এর আগে অচেনা সার্ভার মূল অ্যাপে যাচাই করুন।

জাম্প হোস্ট দিয়ে সংযোগ হচ্ছে না

প্রতি ব্যাস্টিয়নের ঠিকানা ও পরিচয়তথ্য দেখুন; ফোনকে প্রথম ধাপে পৌঁছাতে হবে। পরের হোস্ট আগের সার্ভার থেকে গম্য চাই। permitopen-সহ TCP ফরওয়ার্ড অনুমতি দরকার। রুট SSH হবে, লুপ থাকবে না এবং প্রসারিত ধাপ আটের বেশি নয়।

মুছে যাওয়া বা না-পাওয়া ব্যাস্টিয়ন সরাসরি সংযোগে ফেরে না। সংরক্ষিত রুট ঠিক করে আবার যুক্ত হন। Android অবস্থা ও লগইন লগ ব্যর্থ ধাপকে শেষ সার্ভার থেকে আলাদা দেখায়।

প্রমাণীকরণ ব্যর্থ

পরীক্ষা করুন:

এনক্রিপ্ট করা প্রাইভেট কী-এর জন্য পাসওয়ার্ড/পাসফ্রেজ ফিল্ডে পাসফ্রেজ লিখুন।

Android-এ রিমোট ssh বা git-এর জন্য সার্ভারের SSH এজেন্ট ফরওয়ার্ড করুন এবং সার্ভারের অনুমতি চাই। কেবল সংরক্ষিত ব্যবহারযোগ্য কী দেওয়া হয়। অপেক্ষমাণ অনুমোদন/প্রত্যাখ্যান বা নিরাপত্তা-কী প্রম্পট সেই সংযোগের টার্মিনাল, ফাইল ট্রান্সফার ও টানেল 30 সেকেন্ড পর্যন্ত থামাতে পারে; অ্যাপ বা বিজ্ঞপ্তিতে উত্তর দিন।

প্রাইভেট কী আমদানি ব্যর্থ

প্রাইভেট কী আমদানি সিস্টেম ফাইল পিকার ব্যবহার করে। আমদানি ব্যর্থ হলে:

Android-এ নিরাপত্তা কী সাড়া দিচ্ছে না

Android USB/NFC দিয়ে CTAP2/FIDO2 ed25519-sk ও ecdsa-sk সমর্থন করে। আমদানি করা পরিচয় যে আসল কীতে তৈরি হয়েছে সেটিই ব্যবহার করুন। 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 মাউস মোড সক্ষম থাকলে অ্যাপ মাউস-হুইল এস্কেপ সিকোয়েন্স পাঠায়।

স্ক্রলিং ভুল মনে হলে:

Android-এ স্বাভাবিক কপি-মোড চিহ্ন থাকলে নিচে স্ক্রল করে অ্যাপের tmux কপি মোড ছাড়া যায়। চিহ্ন ছাড়া কাস্টম বা ভাগ করা বিন্যাসে নিজে বেরোতে হতে পারে। সেশন বদলালে নামের সঙ্গে ম্যানেজারের সার্ভার ও tmux সকেট দেখুন।

স্ক্রিন লক হওয়ার পর সেশন বিচ্ছিন্ন

Android-এ Mobile SSH বিচ্ছিন্নতা কমাতে keepalive, ফোরগ্রাউন্ড সার্ভিস, ওয়েক লক, Wi-Fi লক এবং পুনঃসংযোগ চেষ্টা ব্যবহার করে। Android ব্যাটারি নীতি তবু ব্যাকগ্রাউন্ড কাজ থামাতে পারে।

পরীক্ষা করুন:

iOS ব্যাকগ্রাউন্ডে অ্যাপ স্থগিত করে; অন্য অ্যাপে বা লকস্ক্রিনে গেলে সাধারণ SSH অনির্দিষ্টকাল থাকে না। অল্প সময়ের ছাড় দ্রুত অ্যাপ বদল সামলায়। সংযোগে যুক্ত করুন-এ tmux, Herdr বা Zellij, অথবা Eternal Terminal নিন। সার্ভারে মাল্টিপ্লেক্সার চলতে হবে; Eternal Terminal জাম্প রুট নিতে পারে না।

ফাইল ট্রান্সফার ফোন ফাইল ব্রাউজ করতে পারছে না

Mobile SSH Android-এ কোনো স্টোরেজ অনুমতি চায় না। এর বদলে লোকাল প্যান সিস্টেমের ফোল্ডার পিকার দিয়ে আপনার দেওয়া একটিমাত্র ফোল্ডার দেখায় — ফাঁকা থাকলে Pick folder দিয়ে একটি ফোল্ডার বেছে নিন। অনুমতিটি টিকে থাকে, তাই এটি একবারের কাজ।

রিমোট ফাইল লোড হলেও লোকাল না হলে SSH সংযোগ ঠিকই আছে, আপনি কেবল এখনও কোনো ফোল্ডারের অনুমতি দেননি।

iOS স্থানীয় পেন অ্যাপের নথির জায়গায় শুরু হয়। আমার ফোন → স্থানীয় ফোল্ডার বাছুন অন্য Files ফোল্ডার মনে রাখে। প্রদানকারী/অনুমতি না পেলে আবার বাছুন বা অ্যাপ ফোল্ডারে যান। অ্যাপ ডাউনলোড আমার iPhone-এ, বাইরের ফাইল প্রদানকারীর জায়গায় থাকে। ব্যাকআপে ফোল্ডার অনুমতি যায় না।

আপলোড বা ডাউনলোড ব্যর্থ

পরীক্ষা করুন:

পোর্ট ফরওয়ার্ড ব্যর্থ

পরীক্ষা করুন:

Android-এ VPN বা প্রক্সি ট্র্যাফিক নিচ্ছে না

SSH VPN, Shadowsocks ও OpenVPN পুনঃসংযোগে ধরা ট্র্যাফিক সরাসরি না পাঠিয়ে আটকাতে পারে। থামালে সুরক্ষা শেষ। সার্ভারের প্রদানকারী/প্রশাসকের ইন্টারনেট সীমা VPN কাটাতে পারে না।

ব্যাকআপে সব ফেরেনি

প্রিভিউ এবং মার্জ বা প্রতিস্থাপন দেখুন। পুরোনো/আংশিক ব্যাকআপের অনুপস্থিত অংশ বদলায় না। পূর্ণ ব্যাকআপে সমর্থিত অ্যাপ পছন্দ; Android-এ VPN/প্রক্সি প্রোফাইলও। সব প্ল্যাটফর্মের জিনিস iOS-এ যায় না; পুরোনো অ্যাপ নতুন পূর্ণ বিন্যাস প্রত্যাখ্যান করতে পারে।

হোস্ট পরিচয়, সিস্টেম অনুমতি ও নির্বাচিত ফোল্ডারের প্রবেশ ডিভাইসে থাকে। নতুন ডিভাইসে হোস্ট যাচাই ও ফোল্ডার/VPN অনুমতি দিন। হার্ডওয়্যার পরিচয়ে আসল কী চাই। প্রোফাইল আনলে VPN শুরু হয় না; আগে দেখুন।

রিমোট ডেস্কটপ নেই বা আকার বদলায় না

যুক্ত SSH সেশন থেকে ডেস্কটপ খুলুন। সার্ভারের স্থানীয় TCP ফরওয়ার্ড অনুমতি দেখুন। Linux-এ অনুপস্থিত প্যাকেজের বার্তা মেনে ডেস্কটপ/VNC বসান। Android Wayland কনসোল মিরর করে না; সমর্থিত ভার্চুয়াল ডেস্কটপ নিন।

Mac সেটিংসে Screen Sharing চালান। Android Mac অ্যাকাউন্ট দিয়ে প্রমাণীকরণ সমর্থন করে; iOS-এর জন্য Screen Sharing-এ প্রচলিত VNC পাসওয়ার্ড প্রবেশ চালু চাই এবং Mac অ্যাকাউন্ট পাসওয়ার্ডের বদলে স্ক্রিন-শেয়ারিং পাসওয়ার্ড ব্যবহার করতে হবে। বর্তমান Mac স্ক্রিন দেখায়; রেজোলিউশন Mac-এ বদলাতে হতে পারে। সার্ভার সমর্থন করলেই ভার্চুয়াল ডেস্কটপ সরাসরি মাপ বদলায়। অ্যাপের তৈরি ডেস্কটপ পুনরারম্ভ নিশ্চিত করতে বলে ও প্রোগ্রাম বন্ধ করে। ভিউয়ার ছাড়লেও রিমোট ডেস্কটপ চলে।

ডিবাগ লগ

দুই প্ল্যাটফর্ম আলাদা আলাদা জিনিস রেকর্ড করে, তাই আপনার সমস্যার সঙ্গে যেটি মেলে সেটিই বেছে নিন।

Android — টার্মিনাল ও রেন্ডারিং। Settings → Debugging → Show Debug and Logs buttons সক্ষম করুন, তারপর স্টার্ট স্ক্রিনে যে Debug বোতামটি দেখা যায় সেটি ব্যবহার করুন। এটি টার্মিনাল ইভেন্ট, SSH ডেটার আকার, টাচ ইনপুট, রিসাইজ আচরণ এবং টানেল জীবনচক্র রেকর্ড করে। রেকর্ডিং শুরু করার আগে এটি সতর্ক করে দেয় যে আপনার টাইপ করা প্রতিটি কী, পাসওয়ার্ডসহ, এতে ধরা পড়ে। থামালে এটি আপনার Downloads ফোল্ডারে একটি আর্কাইভ লেখে।

iOS — সংযোগ ও পুনঃসংযোগ। Settings → Diagnostics → Record debug log চালু করুন। এটি রেকর্ড করে কোন কোন ঠিকানায় সংযোগের চেষ্টা হয়েছিল ও কেন ব্যর্থ হলো, পুনঃসংযোগের চেষ্টা ও তাদের ব্যাকঅফ, বিচ্ছিন্ন হওয়া সংযোগ, “peer stopped answering keepalives”, নেটওয়ার্ক পরিবর্তন, এবং tmux কমান্ড ও তাদের ত্রুটি। Settings একটি লাইভ লাইন গণনা দেখায় যাতে আপনি নিশ্চিত হতে পারেন এটি রেকর্ড করছে, আর Export Debug Log এটিকে একটি টেক্সট ফাইল হিসেবে শেয়ার করে। এটি মেমরিতে রাখা হয় এবং কেবল বর্তমান অ্যাপ সেশনটুকুই ধরে রাখে।

শেয়ার করার আগে যেকোনো ডিবাগ লগ বা আর্কাইভ পর্যালোচনা করুন। এগুলো সমস্যা সমাধানের জন্য এবং সার্ভারের নাম, ঠিকানা, সময় বা অন্যান্য পরিবেশ বিবরণ — আর Android-এ আপনি যা কিছু টাইপ করেছেন তা-ও — প্রকাশ করতে পারে।