এসএসএইচ মাল্টিপ্লেক্সিংয়ের সীমাবদ্ধতা


26

আমার .ssh/configফাইলে আমার নীচের প্রবেশ রয়েছে

Host AAA
    User BBB
    HostName CCC
    ControlMaster auto
    ControlPath ~/.ssh/%r@%h:%p

উপরেরটি আমাকে প্রতিবার নতুন সেশনের প্রয়োজনে পাসওয়ার্ড টাইপ না করে একই এসএসএস সংযোগের মাধ্যমে একাধিক এসএস সেশনের অনুমতি দেয় (যতক্ষণ না মাস্টার সংযোগ খোলা থাকে)।

তবে, আমি লক্ষ্য করেছি যে একবার আমার তুলনায় তুলনামূলকভাবে বেশি # সংযোগের মাল্টিপ্লেক্সড (~ 7) হয়ে গেলে আমি একই মাল্টিপ্লেক্সযুক্ত সংযোগে আরও অধিবেশন যুক্ত করতে পারি না এবং আমি নিম্নলিখিত ত্রুটিটি পেতে শুরু করি:

> ssh -X AAA

mux_client_request_session: session request failed: Session open refused by peer
Password: 

আমার প্রশ্নগুলো:

আমি কেন এই ত্রুটি পাচ্ছি? আমি কি একই সংযোগে মাল্টিপ্লেক্স করতে পারি # ssh সেশনের কোনও সীমা আছে? আমি কি এই সীমাটি পরিবর্তন করতে পারি? এটি একটি খারাপ ধারণা হবে?


2
আমি সরাসরি প্রশ্নের উত্তর দিতে পারি না, তবে সমস্যাটি সনাক্ত করার জন্য কিছু পরামর্শ দিতে পারি। পিয়ার যেহেতু সংযোগটি প্রত্যাখ্যান করেছে, তাই আপনি যে সিস্টেমে সংযোগ করছেন তার লগগুলি দেখে আমি শুরু করব। দেখুন sshd কোনও ত্রুটি দেয় কিনা। যদি তা না হয় তবে লগলিভেল বাড়িয়ে আবার চেষ্টা করুন। যদি আপনি এমন একটি লগ বার্তা খুঁজে পান যা অবিলম্বে সুস্পষ্ট না হয় এবং বাক্যাংশটি অনুসন্ধানে কোনও লাভ হয় না, আপনি উত্স কোডে গ্রেপ ব্যবহার করতে পারেন। ত্রুটি বার্তাগুলি প্রায়শই শর্তগুলির সেট দ্বারা ঘিরে থাকে - এর মধ্যে একটি (বা কিছু) পূরণ করা যায় নি, এবং এই কারণেই এই বার্তাটি উপস্থিত হয়েছিল।
শন জে। গফ

উত্তর:


26

sshdসার্ভারে ডেমন নেটওয়ার্ক সংযোগ প্রতি সেশন সংখ্যা সীমিত করা হয়। এটি MaxSessionsবিকল্প দ্বারা নিয়ন্ত্রিত হয় /etc/ssh/sshd_config। এছাড়াও MaxStartupsযদি আপনি প্রচুর সেশন ব্যবহার করেন তবে বিকল্পটি বাড়ানো দরকার। (দেখুন man sshd_configআরো বিস্তারিত জানার জন্য।) সংশোধন করতে বিকল্প MaxSessionsসীমা OpenSSH- র 5.1 চালু করা হয়েছে এবং এটি দেখায় যে সংখ্যা পূর্বে হার্ড সংশোধন 10. এ ছাড়িয়ে যায় সেক্ষেত্রে ছিল MaxSessionsসার্ভারে, আপনি দেখতে পাবেন sshd[####]: error: no more sessionsসার্ভারের লগ পারে।


4

আমি ওপেনএসএসএইচ এর পূর্ববর্তী সংস্করণ সহ একটি সার্ভারে এই সমস্যাটি ছড়িয়েছি। আমি সার্ভারটি নিয়ন্ত্রণ করি এবং আমি আমার নামী কনফিগারেশনে দুটি সিএনএম তৈরি করে সমস্যার সমাধান করেছি:

realhost.myexample.com.      IN  A       XXX.XXX.XXX.XXX
realhost2.myexample.com.     IN  CNAME   realhost.myexample.com.
realhost3.myexample.com.     IN  CNAME   realhost.myexample.com.

তারপরে, আমার স্থানীয় ssh ক্লায়েন্ট কনফিগারেশনে:

ControlMaster auto
ControlPath ~/.ssh/%r_%p_%h

host realhost
hostname realhost.myexample.com

host realhost2
hostname realhost2.myexample.com

host realhost3
hostname realhost3.myexample.com

কন্ট্রোলপথ স্টেটমেন্টটি তাই নিয়ন্ত্রণ সকেটের নামগুলি একে অপরের সাথে পদক্ষেপ না নেয়।

এটি হ'ল তবে এটি পরিচালনা করা সহজ করার জন্য আমি ক্লায়েন্টের পাশে 'ssh' এর জন্য একটি মোড়ক স্ক্রিপ্ট লিখেছিলাম। এটি বোঝে যে হোস্টের 'গোষ্ঠী' রয়েছে (এই ক্ষেত্রে রিয়েলহোস্ট, রিয়েলহোস্ট 1, রিয়েলহোস্ট 2 একটি গ্রুপকে অন্তর্ভুক্ত করে)। 'Sshwrapper রিয়েলহোস্ট' জারি করার সময়, ওপেন চ্যানেল না থাকলে, তিনটিই খোলা থাকে এবং একটি সেশন শুরু হয়। পরের বার এটি চালানোর পরে, এটি প্রতি চ্যানেল খোলার সংযোগ গণনা করে, এবং কয়েকটি সংযোগের মাধ্যমে চ্যানেলে নতুন সেশনটি খোলে।

একটি আসল এবং দুটি 'নকল' হোস্টের সাহায্যে আমি ত্রুটি পাওয়ার আগে 30 বার সংযোগ করতে পারি। তিনটি কন্ট্রোল চ্যানেল সেই সময়ে খোলা থাকায় প্রাথমিক সময় বাদে দ্বিতীয় বা দু'টি সময় নেয় তবে লগইন করা অত্যন্ত দ্রুত।


স্ক্রিপ্টটি সত্যিকারের টাইমসভারের মতো মনে হয় এবং এটি সত্যিই দরকারী। যদি আপনার কাছে এখনও থাকে, আপনি কি এটি জনসাধারণের সাথে ভাগ করে নিতে আপত্তি করবেন?
thefourtheye

আমি নিশ্চিত না যে এটি এখানে উপযুক্ত, কারণ এটি কোনও প্রশ্নের উত্তর নয়। এছাড়াও, আমি এটি কেবল নিজের জন্য লিখেছি এবং এটি একটি ম্যাক ক্লায়েন্ট (আমার লিনাক্স সার্ভারগুলিতে লগইন করতে) চালায়। কোডটি 'পিএস' আউটপুটকে বিশ্লেষণ করে এবং বিভিন্ন 'পিএস' সিনট্যাক্সের কারণে লিনাক্সে চালনার জন্য এটি পরিবর্তন করতে হবে।
জো

যথেষ্ট ফর্সা। যদিও সাধারণ ধারণা ভাগ করে নেওয়ার জন্য ধন্যবাদ।
thefourtheye

আমি স্ক্রিপ্টটি moosiefinance.com:8081/sshm.zip এ রেখেছি।
জো

দুর্দান্ত ... অনেক ধন্যবাদ ... আমাকে এর মধ্য দিয়ে যেতে দিন
the 19th
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.