আমি কীভাবে একটি এসএসএইচ অধিবেশনকে ওএস এক্স টার্মিনালে ঝুলানো থেকে আটকাতে পারি?


101

আমি যখন টার্মিনালে একটি সক্রিয় এসএসএইচ সেশন দিয়ে আমার ম্যাকবুকটি বন্ধ করি এবং তারপরে এটি জাগ্রত করি তখন প্রম্পটটি প্রতিক্রিয়াবিহীন হয়।

প্রায় পাঁচ মিনিটের মধ্যে এটি বলে

Write failed: Broken pipe

এবং অবসান।

প্রায় পনের মিনিটের মধ্যে আমি টার্মিনালে কোনও টাইপ না করলে এটিও ঘটে ।

আমি কি ওএস এক্সকে বাধ্য করতে পারি:

  1. দীর্ঘতম সময়ের জন্য এসএসএইচ সংযোগটি জীবিত রাখুন
  2. প্রতিক্রিয়াহীন হয়ে গেলে তাৎক্ষণিকভাবে হত্যা করুন K

?

উত্তর:


121

সংযোগটি বাঁচিয়ে রাখার জন্য , আপনি /etc/ssh/ssh_configযে লাইনে বলেছেন তাতে লাইনটি পরীক্ষা করতে পারেন ServerAliveInterval, এটি আপনাকে জানায় যে সংযোগটি টিকিয়ে রাখতে আপনার কম্পিউটার কতবার (সেকেন্ডে) নাল প্যাকেট প্রেরণ করবে। যদি আপনার সেখানে 0 থাকে তবে এটি নির্দেশ করে যে আপনার কম্পিউটার সংযোগটি বাঁচিয়ে রাখার চেষ্টা করছে না (এটি অক্ষম রয়েছে), অন্যথায় এটি আপনাকে বলবে যে এটি কত বার (সেকেন্ডে) পূর্বোক্ত প্যাকেটটি প্রেরণ করছে। 120 বা 240 লাগানোর চেষ্টা করুন, যদি এটি এখনও আপনার সংযোগটি হত্যা করে, আপনি নীচে যেতে পারেন, সম্ভবত 5 এ, যদি এই সংখ্যার সাথে এটি না ঘটে, সম্ভবত এটি আপনার রাউটার যিনি ফ্রি মেমরির সাথে সংযোগটি ছুঁড়ে ফেলছেন।

এটি হ্যাং আপ হয়ে গেলে এটি হত্যার জন্য , আপনি ssh পলায়ন চরিত্রটি ব্যবহার করতে পারেন:

~.

এটি হ'ল টিলড এবং তারপরে পিরিয়ডটি টিপুন, যদি এটি কাজ না করে তবে আপনি চাপ দেওয়ার আগে এন্টার টিপুন, এটি সংযোগটি তত্ক্ষণাত হত্য করবে।


3
ঠিক আছে, আপনি ~.দুর্দান্ত টিপ দিয়ে সংযোগটি মেরে ফেলতে পারেন ! তবে এটি আসলে কী করে?
কাজিনকোকেইন

আমি যে বিষয়টি নিয়ে কেবল বিভ্রান্ত হয়েছি তা হ'ল এসএসডিটি পুনরায় আরম্ভ করতে হবে না, তবে মনে হচ্ছে সেশনটি থেকে বেরিয়ে এসে পুনরায় সংযোগ করার
চেষ্টাটি করেছিলেন

প্রায়শই ~। কয়েক মিনিট আমার জন্য কাজ করে না। কেন এমন?
শ্রীধর সারনোবাত

2
অবস্থান ssh_configহয় /etc/ssh/ssh_configম্যাক OS X আমি উত্তর নিজেকে সম্পাদনা করবে, কিন্তু আমি এই সাইটে যথেষ্ট প্রতিনিধির তা করার প্রয়োজন নেই।
এরিক বি

আমি কি এটি ক্লায়েন্ট বা সার্ভারে রেখেছি? আমি ক্লায়েন্ট মনে করি, তবে আরও পরিষ্কার হতে পারে।
এরালপবি

23

আপনি পারেন:

সমস্ত সংযোগের জন্য আপনার সিস্টেম, সিস্টেম-ব্যাপী, কনফিগার করুন: / etc / ssh / ssh_config সম্পাদনা করে এবং লাইনটি যুক্ত করুন:

ServerAliveInterval 10

অথবা, প্রতি সার্ভার ~ / .ssh / কনফিগারেশন

Host keepsdroppingme.com
   ServerAliveInterval 10

এটি মূলত যা পাঠায় তা প্রতি 10 সেকেন্ডে জীবন্ত প্যাকেটটি রাখে ...


9

আপনি দুর্দান্ত মশ প্রকল্পটি ব্যবহার করে দেখতেও পারেন । এটি নেটওয়ার্ক লোকসানগুলি, ঘুমাতে যাওয়া মেশিনগুলি সানন্দে হ্যান্ডেল করবে এবং আপনার যদি আবার একটি ওয়ার্কিং নেটওয়ার্ক থাকে তখন আনন্দের সাথে সংযোগটি পুনরুদ্ধার করে।

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


আসলে, এখন আমি ঠিক তাই করছি।
ড্যান

5

এখানে বিভিন্ন উত্তর কনফিগার ফাইলের সঠিক পথ সম্পর্কিত বিরোধে রয়েছে। বিভিন্ন ইউনিক্সে হয়তো এটি আলাদা? আমি আপনার সিস্টেমে ম্যান পেজগুলি পড়ার পরামর্শ দিচ্ছি!

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

ইন মানুষ ssh_config (5) : টেক্সট অনুসন্ধান জীবিত । আমার সিস্টেমে দেখে মনে হচ্ছে যে সার্ভারআলাইভআইন্টারওয়াল এবং সার্ভারআলাইভাক্যান্টম্যাক্স উভয়ই সেট করা দরকার ।

ম্যাকোস 10.12 সিয়েরায় আমার জন্য যা কাজ করেছে তা হ'ল two / .ssh / কনফিগারারে নিম্নলিখিত দুটি লাইন স্থাপন করা হবে:

ServerAliveInterval 20
ServerAliveCountMax 180

এখন আমি আমার উবুন্টু 16.04 সার্ভারে 20 * 180 সেকেন্ড = 1 ঘন্টার জন্য সংযোগ ছাড়াই ছাড়তে পারি s আমার দিন তৈরি!


3

ঘুম বা ওয়াইফাই বাধার পরে স্বয়ংক্রিয়ভাবে এসএসএস পুনরায় সংযোগ করুন

  1. ম্যাকপোর্টস বা হোমব্রু থেকে অটোশ ইনস্টল করুন :brew install autossh

  2. টার্মিনাল খুলুন এবং রান করুন autossh -M 20000 -f [SSH ARGUMENTS GO HERE]

  3. আপনার ওয়াইফাই সংযোগ বিচ্ছিন্ন করুন বা আপনার ম্যাককে ঘুমাতে দিন।

  4. আপনি যখন ওয়াইফাইতে পুনরায় সংযোগ করবেন, ssh সেশনটি স্বয়ংক্রিয়ভাবে পুনরায় সংযোগ স্থাপন করবে।


লগইন করার পরে স্বয়ংক্রিয়ভাবে ssh

আপনি যখন লগইন করবেন তখন জন স্টেসি স্বয়ংক্রিয়ভাবে একটি এসএস সেশান সক্রিয়করণ সম্পর্কে একটি ব্লগ পোস্ট লিখেছিলেন ।

  1. ম্যাকপোর্টস বা হোমব্রু থেকে অটোশ ইনস্টল করুন :brew install autossh

  2. বাশ স্ক্রিপ্ট সহ একটি অটোমেটার ওয়ার্কফ্লো তৈরি করুন ।

অটোমেটর শেল স্ক্রিপ্ট

  1. যান আইটেম লগইন মধ্যে সিস্টেম পছন্দসমূহ

সিস্টেম পছন্দসমূহ> লগইন আইটেম

  1. আপনার অ্যাড Automator কর্মপ্রবাহ করার আইটেম লগইন করুন

লগইন আইটেম


1

এই দুটি লাইন যুক্ত করুন /etc/ssh/ssh_config:

ServerAliveInterval 60
TCPKeepAlive yes

1

এই সমস্যাটি সমাধান করুন কেবল নিম্নলিখিত লাইনগুলিতে এটিকে যুক্ত করুন $HOME/.ssh/config

Host *
  ServerAliveInterval 120
  TCPKeepAlive no

সেটিং TCPKeepAlive noক্লায়েন্টকে কেবল ধরে নিতে বলেছে যে সংযোগটি এখনও সঠিক হিসাবে ধরে নেওয়া হয়েছে অন্যথায় কোনও ব্যবহারকারী অনুরোধের দ্বারা প্রমাণিত হওয়া, মানে আপনার এসএস টার্ম ব্যাকগ্রাউন্ডে অলস অবস্থায় থাকাকালীন অস্থায়ী সংযোগ বিরতি সংযোগটি হারাবে না।

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