প্রশ্ন কেন এসএসএইচ সংযোগ বিরতি যখন কনসোল কখনও কখনও চিরতরে স্থগিত করবেন?


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

যখন এটি ঘটে তখন এটি খুব বিরক্তিকর (উদাঃ আপনি কমান্ড ইতিহাসটি হারাবেন।) সম্ভবত একটি গোপন কীবোর্ড শর্টকাট যা প্রস্থান করতে বাধ্য করতে পারে (Ctrl-C বা Ctrl-D কাজ করে না)? এবং যেহেতু সব বাস্তবায়ন জুড়ে এই র্যান্ডম "বাগ" জন্য কি কারণ?


75
2018-06-22 18:12


উত্স


এই থ্রেড উল্লেখ উপযুক্ত মনে হয় mosh (মোবাইল শেল) যা রোমিং (আইপি পরিবর্তন) এবং অন্যান্য স্টাফ সহ সংযোগ ব্যর্থতার সাথে ভালভাবে কাজ করে। - Ciprian Tomoiagă


উত্তর:


প্রস্থান করার জন্য একটি "গোপন" কীবোর্ড শর্টকাট আছে: ~) হিমায়িত সেশন থেকে, এই কীগুলি ক্রম অনুসারে আঘাত করুন: প্রবেশ করান~ Tilde (শুধুমাত্র একটি নতুন লাইন পরে) এসএসএ ক্লায়েন্ট দ্বারা একটি অব্যাহতি ক্রম হিসাবে স্বীকৃত হয়, এবং সময় ক্লায়েন্ট তার ado ছাড়া তার ব্যবসা বন্ধ করতে বলে।

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

সম্পাদনা: এই বিঘ্নিত কীটির আরেকটি দরকারী অ্যাপ্লিকেশনটি স্থানীয় এসএসএ ক্লায়েন্টের মনোযোগ এবং পটভূমিটি আপনার মিনিট-এর জন্য আপনার ইতিহাস থেকে কিছু পেতে - এটি দূরবর্তী স্থানে কাজ চালিয়ে যাওয়ার জন্য আপনার স্থানীয় শেলটিতে ফিরে যাওয়ার জন্য। প্রবেশ করান~  জন্য ctrl+ +জেড এসএসএ ক্লায়েন্টকে আপনার স্থানীয় শেলের ব্যাকগ্রাউন্ড কাজের সারিতে প্রেরণ করুন fg এটা ফিরে পেতে স্বাভাবিক হিসাবে।

সম্পাদনা: নেস্টেড এসএসএইচ অধিবেশনগুলির সাথে ডিল করার সময়, আপনি শৃঙ্খলে SSH সেশনগুলির মধ্যে কেবল একটিতে বিরতিতে একাধিক টিলেড অক্ষর যুক্ত করতে পারেন তবে অন্যদের ধরে রাখতে পারেন। উদাহরণস্বরূপ, যদি আপনি 3 স্তরে নেস্টেড হন, (যেমন আপনি স্থানীয়-> মেশিন 1-> Machine2-> Machine3 থেকে ssh), প্রবেশ করান~ আপনার স্থানীয় অধিবেশন ফিরে পাবেন, প্রবেশ করান~~ Machine1, এবং আপনি ছেড়ে চলে যাবে প্রবেশ করান~~~ মেশিন 2 ছেড়ে চলে যাবে। এটি অন্যান্য অব্যাহতি ক্রমগুলির জন্যও কাজ করে, যেমন সাময়িকভাবে ssh অধিবেশনকে পটভূমিতে স্থানান্তর করা। উপরে আরো tilde এর যোগ করে, নেস্টিং কোন স্তরের জন্য কাজ করে।

অবশেষে, আপনি ব্যবহার করতে পারেন প্রবেশ করান~? উপলব্ধ পাল্টা কমান্ডের একটি সহায়তা মেনু মুদ্রণ।

টিএল; ডিআর - সমর্থিত পাল্টা কমান্ড সমর্থিত অব্যাহতি ক্রম:

 ~.   - terminate connection (and any multiplexed sessions)
 ~B   - send a BREAK to the remote system
 ~C   - open a command line
 ~R   - request rekey
 ~V/v - decrease/increase verbosity (LogLevel)
 ~^Z  - suspend ssh
 ~#   - list forwarded connections
 ~&   - background ssh (when waiting for connections to terminate)
 ~?   - this message
 ~~   - send the escape character by typing it twice
(Note that escapes are only recognized immediately after newline.)

121
2018-06-22 18:15



শিরোনাম sshd শুটিংয়ের জন্য dodecatouple-secret-probation password বুদ্ধিমানের জন্য +1। আপনি এটি সম্পর্কে একই ভাবে খুঁজে পেয়েছেন (ভুল টাইপ ~/.somethingorother প্রবেশ আঘাত পরে)? - voretaq7
@ ভোরতাক 7: না, আমি সেই স্মার্ট ছিলাম না, কিন্তু যখন কেউ আমাকে চেনাচ্ছিল তখন আমি চলে গেলাম "সত্যিই? তাই কি যে সব সময় ঘটছে আমার শেল শুধু ব্যাং গিয়েছিলাম! কোন কারণে যখন আমি টাইপ ছিল?"। এটি উল্লেখযোগ্য নয় তবে আপনি এটি উল্লেখ করতে পারেন তবে এটি ঘটতে পারে। - Caleb
যার মাধ্যমে "গোপন" মানে "মানুষের পৃষ্ঠায়"। - larsks
যদিও অনেকে এই সম্পর্কে জানেন না, এটি আসলেই সাধারণ দৃশ্যের একটি গোপন বিষয়। man ssh এই অধীনে কভার ESCAPE CHARACTERS অধ্যায়. ~. (বিচ্ছিন্ন) এবং ~^Z (পটভূমি ssh) খুব সহজ। - Stefan Lasiewski
অবশ্যই এটি ম্যান পৃষ্ঠাতে রয়েছে :) আমি শুধুমাত্র গোপন শব্দটি ব্যবহার করেছি কারণ ওপি করেছে, এবং আমি গালে জিহ্বা ব্যবহার করছি। এই বৈশিষ্ট্যটি নিয়ে সমস্যাটি হল যে লোকেরা এটির জন্য কোথায় অনুসন্ধান করবে তা জানে না, তারা নিয়ন্ত্রণ অক্ষর এবং এই ধরনের সংকেত শেলের অংশ হতে পারে বলে আশা করে। একবার আপনি কোথায় চেহারা বা এমনকি জিজ্ঞাসা করতে জানেন, অবশ্যই এটা আছে। - Caleb


এসএসএইচ একটি লাইভ-জীবিত সুবিধা প্রদান করে। আপনার স্থানীয় নিম্নলিখিত যোগ করুন ~/.ssh/config (এটি উপস্থিত না থাকলে তৈরি করুন):

ServerAliveInterval 15
ServerAliveCount 3

এই সেটিংটি সুরক্ষিত সুড়ঙ্গের মাধ্যমে প্রতি 15 সেকেন্ডে পাঠানো একটি জীবন্ত সংকেত স্থাপন করবে। তিনটি ব্যর্থতার পর, এসএসএইচ ক্লায়েন্ট প্রস্থান করবে।

মনে রাখবেন কিছু সিস্টেমের পরিবর্তে এটি হতে হবে:

ServerAliveInterval 15
ServerAliveCountMax 3

Ask.ubuntu এই উত্তর থেকে নেওয়া: https://askubuntu.com/a/29967/30266


11
2018-01-19 08:44





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


8
2018-06-22 19:49





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

যদিও এটি আসলে কোনও প্রশ্নের উত্তর দেয় না এটি একটি সংযোগ হ্যাংয়ের প্রভাবগুলিকে কমাতে সহায়তা করতে পারে: যখন আমি দূরবর্তীভাবে কাজ করছি (এবং এমনকি যখন আমি নই) তখন আমি screen (সঙ্গে বা ছাড়া byobu wrapper এর প্রাপ্যতা নির্ভর করে) যাতে আমার যে কোনও ধরণের সংযোগ ড্রপ হয়, তার ইতিহাস সহ, তার ইতিহাসের সাথে সংরক্ষণ করা হয় এবং আমি পুনঃসংযোগের সময় রাষ্ট্রটিতে উপলব্ধ থাকি।


5
2018-06-22 18:18



পর্দা সম্পর্কে আপনার পরামর্শ জরিমানা, তবে প্রথম বিট আসলে সমস্যাটির ক্ষেত্রে প্রযোজ্য নয়। আপনি রিমোট সাইডের মাধ্যমে কীগুলি পেতে হবে না, আপনাকে শুধুমাত্র স্থানীয় এসএসএল ক্লায়েন্টের মাধ্যমে তাদের পেতে হবে! ওপি চায় ইতিহাসের সহিত তার স্থানীয় শেল। এসএসএইচ এটি গ্রহণ করে এবং CTRL-C মত স্বাভাবিক বিরতি ক্রমগুলির প্রতিক্রিয়া দেয় না কারণ এটি এটি পাস করে। স্থানীয় ক্লায়েন্টটি পেতে ও শেষ করার উপায় আছে, আমার উত্তর দেখুন। শেল কনফিগারেশনের উপর নির্ভর করে, যদি আপনি আবার লগইন করেন তবে স্থানীয় প্রান্তে ইতিহাসটি যে কোনওভাবেই রাখা হয়। - Caleb
@ কালেব: প্রশ্নটি বিশেষভাবে ইতিহাসের হারাতে উল্লেখ করেছে, এবং কমান্ড ইতিহাস সার্ভার-সাইড সংরক্ষণ করা হয়। সার্ভারটিকে ইতিহাসের সাথে ভিন্ন কিছু করতে বলার জন্য আপনাকে সার্ভারে একটি বার্তা পেতে হবে যাতে এটি ইতিহাসের সাথে কিছু আলাদা করতে বলা যায়। অবশেষে বাম (এবং কিছু অন্যান্য শেল) রেকর্ড ইতিহাস লাইনগুলি RAM তে সংগ্রহ করার পরিবর্তে অবিলম্বে শেলটি উপস্থিত না হওয়া পর্যন্ত সেগুলি তৈরি করার উপায় রয়েছে। exit/logout যা ব্যবহার ছাড়া ইতিহাস সমস্যা সমাধান করবে screen। - David Spillett