এসএসএইচ-এ সার্ভারআলাইভকাউন্টম্যাক্স


24

এসএসএইচে সার্ভারআলাইভকাউন্টম্যাক্স আসলে কী করে?

আমি এটি নিশ্চিত করার চেষ্টা করছি যে আমি যখন এসএসএইচ এর মাধ্যমে আমার সার্ভারের সাথে সংযোগ করব তখন অল্প সময়ের জন্য নিষ্ক্রিয়তার পরে সংযোগটি মারা যাওয়ার পরিবর্তে সংযোগটি দীর্ঘ সময়ের জন্য উন্মুক্ত থাকে। এটি উদাহরণ

Host *
    ServerAliveInterval 60
    ServerAliveCountMax 2

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

দ্বিতীয় এবং তৃতীয় উৎস কিন্তু কিছু বলো আলাদা। তাদের দাবি যে যদি নিষ্ক্রিয়তার সময়সীমা থাকে তবে প্রতি 60 সেকেন্ডে সার্ভারে একটি বার্তা পাঠানো হবে তবে এটি কেবল 2 টি অনুরোধের মাধ্যমে প্রেরণ করবে এবং তারপরে এটি সংযোগটি বন্ধ করে দেবে।

তাহলে সার্ভারআলাইভকাউন্টম্যাক্স ঠিক কী করে?

উত্তর:


31

আপনার অনুভূতিটি "এটি ভুল" সঠিক। ম্যান পৃষ্ঠাটি দেখুন :

 ServerAliveCountMax
         Sets the number of server alive messages (see below) which may be
         sent without ssh(1) receiving any messages back from the server.
         If this threshold is reached while server alive messages are
         being sent, ssh will disconnect from the server, terminating the
         session.  It is important to note that the use of server alive
         messages is very different from TCPKeepAlive (below).  The server
         alive messages are sent through the encrypted channel and there‐
         fore will not be spoofable.  The TCP keepalive option enabled by
         TCPKeepAlive is spoofable.  The server alive mechanism is valu‐
         able when the client or server depend on knowing when a connec‐
         tion has become inactive.

         The default value is 3.  If, for example, ServerAliveInterval
         (see below) is set to 15 and ServerAliveCountMax is left at the
         default, if the server becomes unresponsive, ssh will disconnect
         after approximately 45 seconds.  This option applies to protocol
         version 2 only.

 ServerAliveInterval
         Sets a timeout interval in seconds after which if no data has
         been received from the server, ssh(1) will send a message through
         the encrypted channel to request a response from the server.  The
         default is 0, indicating that these messages will not be sent to
         the server.  This option applies to protocol version 2 only.

3
ম্যান পৃষ্ঠাটি এটি অক্ষম Intervalকরার জন্য সেটটিতে পরিষ্কার 0। আপনি সেট Maxকরে থাকলে তা পরিষ্কার নয় 0। এটি কি অসীম অ্যালাইভ পিংস প্রেরণ করবে, না কিছুই?
gcb

সার্ভারআলভইন্টারভাল 0 সেট করা সংযোগটি অনির্দিষ্টকালের জন্য উন্মুক্ত রাখবে কিনা তা আমার কাছে স্পষ্ট নয়
ফ্রান্সেস্কো

1
@ ফ্রান্সেসকো ডিফল্টরূপে সংযোগটি চিরকাল খোলা থাকবে, যদি না এক প্রান্তটি স্পষ্টভাবে বন্ধ করে দেয়।
মাইকেল হ্যাম্পটন

5

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

অপশনটি নির্ধারণের অনিশ্চয়তা সম্পর্কে মন্তব্যের জবাব দেওয়ার জন্য 0, আমি opensshবাস্তবায়নের উত্স কোডটি পড়েছি এবং আমি এখানে যা দেখছি ...

  • সেট করে প্যাকেটগুলি প্রেরণ ServerAliveIntervalকরা 0হবে না, তবে এটি অধিবেশনটিকে অনির্দিষ্টকাল ধরে ধরে রাখবে যে টিসিপি সময়সীমার কারণে সংযোগটি বাদ পড়েছে এবং সার্ভারটি নিষ্ক্রিয় ক্লায়েন্টগুলি ফেলে দেওয়ার জন্য কনফিগার করা হয়নি।

  • সেট ServerAliveCountMaxথেকে 0সেটিং হিসাবে একই প্রভাব রয়েছে ServerAliveIntervalকরার 0

  • Negative INT_MAXণাত্মক বা এর চেয়ে বড় কিছুতে (যেমন 2,147,483,647) মান নির্ধারণের ফলে "পূর্ণসংখ্যার মান ..." ত্রুটি হবে।

  • (অর্থাত্ 2,147,484) থেকে (উদাহরণস্বরূপ 2,147,483,647) এর ServerAliveCountMaxমধ্যে সেট করাও উভয় মান নির্ধারণের সমতুল্য ।INT_MAX/1000+1INT_MAX0

সুতরাং, সংক্ষেপে, আপনি পেতে পারেন সর্বাধিক সময়সীমা (প্যাকেটগুলি প্রেরণ করার সময়) INT_MAX/1000(যেমন 2,147,483)। সময়সীমা শেষ হওয়ার পরে 1এবং সেশনে কোনও ট্র্যাফিক নেই, এটি আপনাকে প্রায় 25 দিন সময় দেবে।

স্পষ্টতই, এসএসএইচের অন্যান্য বাস্তবায়নের বিভিন্ন ফলাফল থাকতে পারে।

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