কীভাবে এসএসএইচ কিছু সময়ের জন্য অকার্যকর থাকলে সংযোগ বিচ্ছিন্ন করা থেকে রোধ করবেন


51

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

আমি জানি যে আমি এটি দিয়ে করতে পারি screen, তবে দুর্ভাগ্যক্রমে screenইনস্টল করা হয়নি, এবং আমি সফ্টওয়্যার ইনস্টল করতে পারি না। সুতরাং আমার যা প্রয়োজন তা ব্যাশ করা দরকার Bash

এটি পরিষ্কার করার জন্য: আমি লগ ইন করার পরে আমি একবারে শুরু হওয়া একটি সমাধানের সন্ধান করছি এবং তারপরে আমি সেই টার্মিনালটিটি ব্যবহার করতে চাই, চলে যেতে পারি, দুই ঘন্টা পরে ফিরে এসে কাজ চালিয়ে যেতে চাই, কিছুটা টাইপ না করে দূরে চলে যাওয়ার আগে। এছাড়াও, আমি স্টাফগুলি সুড়ঙ্গ করতে চাই না (এর জন্য আমি দুর্দান্ত সরঞ্জামের শাটলটির প্রস্তাব দিই )

কোন ধারনা?


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

উত্তর:


78

এটি পরিষ্কার করার জন্য: আমি লগ ইন করার পরে আমি একবারে শুরু হওয়া একটি সমাধানের সন্ধান করছি এবং তারপরে আমি সেই টার্মিনালটিটি ব্যবহার করতে চাই, চলে যেতে পারি, দুই ঘন্টা পরে ফিরে এসে কাজ চালিয়ে যেতে চাই, কিছুটা টাইপ না করে দূরে চলে যাওয়ার আগে।

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

লিনাক্স / ইউনিক্স / সাইগউইন ওপেনএসএইচ ফিক্স :
সবচেয়ে সহজ ফিক্সটি হ'ল ssh ক্লায়েন্ট কিপালাইভগুলি সক্ষম করা; এই উদাহরণটি প্রতি 60 সেকেন্ডে একটি ssh রক্ষণশীল পাঠাবে:

ssh -o "ServerAliveInterval 60" <SERVER_ADDRESS>

আপনি যদি আপনার সমস্ত সেশনে এটি সক্ষম করতে চান তবে এটি আপনার /etc/ssh/ssh_configবা ~/.ssh/config:

ServerAliveInterval 60

আরও তথ্যের জন্য ssh_configম্যানপেজটি দেখুন

পুটি ফিক্স :

এটি আপনার পটিটি "ডিফল্ট সেটিংস" এ সংরক্ষণ করুন ...

  • সংযোগ ক্লিক করুন
  • "রক্ষণশীলদের মধ্যে সেকেন্ডস" এ 60 টাইপ করুন

putty_screenshot


21

মাইক পেনিগটনের উত্তর ছাড়াও , আমি আপনাকেও সচেতন করতে চাই ServerAliveCountMax

  • ServerAliveIntervalএকটি প্রতি এক্স সেকেন্ড (ডিফল্ট keepalive পাঠাব 0 , যা এই বৈশিষ্ট্য অক্ষম করলে অন্য কিছু সেট নয়)।
  • ServerAliveCountMaxকোনও প্রতিক্রিয়া না পাওয়া গেলে এটি করা হবে । ডিফল্ট মান ServerAliveCountMaxহল 3 (দেখুন র manpage ssh_config )।

উদাহরণ: আপনি যদি 60 এ সেট ServerAliveIntervalকরেন এবং এটি যেমনটি ছেড়ে যান তবে এর অর্থ হ'ল রক্ষণশীলরা উদ্ধৃতি দেওয়ার আগে 3 মিনিটের জন্য অপেক্ষা করবে ।ServerAliveCountMax3 * 60 = 180 seconds =

এটি বৃদ্ধি করতে উদাহরণস্বরূপ 2 ঘন্টা সংযোগটি ধরে রাখার চেষ্টা করার জন্য, আপনি এটি করতে পারেন:

প্রতি আদেশ:

সুতরাং আপনি সেট বিবেচনা করা উচিত

ssh -o "ServerAliveInterval 60" -o "ServerAliveCountMax 120" <SERVER_ADDRESS>

জেদি:

এটিকে অবিচ্ছিন্নভাবে লেখার জন্য /etc/ssh/ssh_config(সিস্টেম-ব্যাপী ~/.ssh/configপ্রয়োগ করা হবে ) বা (কেবল ব্যবহারকারীদের জন্য প্রয়োগ করা হবে):

ServerAliveInterval 60
ServerAliveCountMax 120

বিঃদ্রঃ

সঠিকভাবে চিহ্নিত হিসাবে , আপনার পরিস্থিতির উপর নির্ভর করে এটি আপনার পছন্দসই নয়:

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

আরো দেখুন:


1
আমি দুঃখিত, কিন্তু এটি ভুল। ServerAliveCountMaxসার্ভার থেকে কোনও বার্তা না পেয়ে পাঠানো হতে পারে এমন সার্ভারে জীবিত বার্তাগুলির পরিমাণ নির্দিষ্ট করে । যদি আপনি sshএটি জমা হয়ে যাওয়ার পরে প্রস্থান করতে চান (যাতে আপনি এটি পুনরায় চালু করতে পারেন) আপনার আসলে কম সংখ্যায় সেট ServerAliveCountMaxকরা উচিত । লিঙ্কযুক্ত ম্যানপেজটি দেখুন ।
09-

@ ডিসলিক আমাকে এ সম্পর্কে কিছুটা ভাবতে হয়েছিল, তবে আমি মনে করি আপনি প্রসঙ্গের উপর নির্ভর করে সঠিক, তাই আমি প্রসঙ্গে জোর দেওয়ার জন্য একটি নোট যুক্ত করেছি।
মুরমেল

2

আমি মোব্যাক্সটার্ম ব্যবহার করছি এবং এই সমস্যাটির সাথেও মিলিত হয়েছি। ক্লায়েন্ট নিষ্ক্রিয় অবস্থায় ক্লায়েন্টকে বাঁচিয়ে রাখার একটি বিকল্প দিয়ে মোবাক্সটার্ম জাহাজও পাঠায়। যাও Settings -> Configuration -> SSH। শিরোনামে বিভাগ রয়েছে SSH settings, বিকল্পটি পরীক্ষা করুন SSH keepalive। তাহলে সমস্যাটি অদৃশ্য হয়ে যাবে।

এখানে চিত্র বর্ণনা লিখুন


"এসএসএইচ রক্ষণশীল" কি বিনামূল্যে সংস্করণে কাজ করে ... এই বিকল্পটি চেক করার পরেও আমার অধিবেশনটি সংযোগ বিচ্ছিন্ন হয়ে
পড়েছে

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