অদ্ভুত এসএসএইচ ইস্যু, এসএসএস-টি দিয়ে কাজ করে তবে তা ছাড়াই জমা হয়


13

আমি যখন sshআমার কোনও সার্ভারে প্রবেশ করি তখন মনে হয় এটি লগইন হয় তবে তারপরে আমাকে প্রম্পটটি দেওয়ার আগেই স্তব্ধ হয়ে যায় ( message debug2: shell request accepted on channel 0 is the last log entry)।

যদিও বিজোড় কাজ ssh -t "/bin/bash"কাজ sshকরে না যখন ।

আমি এ পর্যন্ত খুঁজে পেয়েছি কি

  • আমি সাধারণত একই ভৌগলিক অবস্থানের সার্ভার থেকে সূক্ষ্ম লগ ইন করতে পারি
  • যদি আমি ssh -t '/bin/bash'- আমি কোনও অবস্থান থেকে নিখুঁতভাবে লগ ইন করতে পারেন।
  • আমি যদি সার্ভারটিতে ব্যবহার rsync করি তবে এটি কাজ করে বলে মনে হয় এবং তারপরে লক হয়ে যায়
  • আমি যদি সার্ভার rsync থেকে ব্যবহার করি তবে এটি সমস্যা ছাড়াই কাজ করে

আমি যা চেষ্টা করেছি

  • সমস্ত লগইন বিকল্পগুলি অপসারণ বা পরিবর্তন করা .profile,.bashrc /etc/profile
  • ssh_config এবং / অথবা sshd_config একটিকে অভিন্ন সার্ভার থেকে সূক্ষ্মভাবে কাজ করে এমনটি পরিবর্তন করা হচ্ছে
  • আমি রাউটিং পরীক্ষা করেছি
  • আমার কোনও নেটওয়ার্ক বিশেষজ্ঞের tcpdumpকোনও লাভ হয়নি পরীক্ষা করা হয়েছে (যদিও অনেকগুলি পুনঃ-সংক্রমণ বলে মনে হচ্ছে)

আমি সত্যিই অন্য কিছু ভাবতে পারি না

একটি ডজি নেটওয়ার্ক কার্ড ড্রাইভার / ফার্মওয়্যার ছাড়াও।


কোন matchবিবৃতি আছে sshd_config? sshdদৌড়ানোর একমাত্র উদাহরণ কি ?
হউক লেগেইং

3
আপনি স্থানীয়ভাবে থেকে ssh হলে কি হবে? একই শারীরিক মেশিনে হোস্ট করা কোনও ভিএম থেকে? একই নেটওয়ার্ক বিভাগ থেকে? আপনি যদি sshd এর অন্য একটি উদাহরণ অন্য কোনও বন্দরে চালান? আপনার .ssh/authorized_keysযেমন অস্বাভাবিক কিছু আছে command=…? আপনি কি ফায়ারওয়াল সংক্রান্ত সমস্ত বিধিবিধান অনুসরণ করে দেখেছেন যে কেউ দুর্ঘটনাক্রমে কিছু এসএসএইচ প্যাকেট ব্লক করতে পারে?
গিলস 'অশুভ হওয়া বন্ধ করুন'

1
এসএসএইচ সংযোগটি ঝুলন্ত অবস্থায় আপনি কি সিটিআরএল + সি করতে পারেন এবং প্রম্পটে যেতে পারেন? প্রম্পটটি আপনার সাধারণ প্রম্পট হবে না। এটি যদি সমস্যা হয় তবে আপনার সম্ভবত আপনার /etc/profile.d/*বা /etc/bashrcফাইলগুলিতে সমস্যা আছে ।
slm

1
"<<<<< টিপুন?" যেকোনো কিছু করো? এটি তিনটি কীপ্রেস, টিলডে প্রশ্নের চিহ্ন প্রবেশ করান।
গডলিজিক

1
আপনি যখন লগ ইন করতে পারবেন, আপনার / ইত্যাদি / পাসডাব্লুডিতে ডিফল্ট শেলটি কী? আপনি যদি ব্যাশ শেলটি ব্যবহার করে লগইন করতে পারেন তবে ডিফল্ট শেলটি ব্যাশ শেল ছাড়া অন্য কিছু বলে মনে হচ্ছে।
ওয়ারউইক

উত্তর:


5

এটি প্রোফাইলের কোনও সমস্যা থেকে আসতে পারে।
আপনি যখন ssh -t /bin/bash নিজের শেলটির সাথে সংযুক্ত থাকবেন তখন 'লগইন' করবেন না, এটি উত্সই দেয় /etc/profileনা এবং ~/.profileএবং ~/.bashrc...

সুতরাং সংযোগের পরে, শেলটি ডিবাগ মোডে রাখুন এবং তারপরে প্রতিটি ফাইলের ভিতরে কী আটকাচ্ছে তা উত্স করুন:

set -x 
. /etc/profile 
...and so on

সম্পাদনা

মনে রাখবেন যে আমি ভুল ছিলাম .bashrc ফাইলটি কোনও ইন্টারেক্টিভ শেল দ্বারা উত্সাহিত হবে (সুতরাং এখানে কেবল প্রোফাইল, প্রোফাইল.ডি ফাইলগুলি গুরুত্বপূর্ণ)।

সংযোগ প্রক্রিয়াটির বিভিন্ন ধাপের তালিকা তৈরি করার চেষ্টা করুন। এটার মতো কিছু

1) এসএসএস সংযোগ স্থাপন (কনফিগারেশন, ...)
2) লগইন (পিএএম, টিটিটি, ডাব্লুটিএমপি, ...)
3) শেলটি শুরু করে (প্রোফাইল, হোম ডির অ্যাক্সেস, ...)

(1) চেক করতে আপনি ডিবাগ মোডে sshd ডিমন শুরু করতে পারেন। তার জন্য আপনাকে আরেকটি sshd শুরু করতে হবে, একটি উত্সর্গীকৃত পোর্ট শুনতে হবে (পোর্ট 22 তে নয় তাই নিয়মিত এসএসডিডি ডিমন বন্ধ করার দরকার নেই)।

# /usr/sbin/sshd -p 2222 -ddd 

এই sshd শুধুমাত্র একটি সংযোগ গ্রহণ করবে এবং পটভূমিতে যাবে না। অন্য একটি টার্মিনাল খুলুন এবং সেই ssh সেশনে সংযুক্ত করুন।

# ssh -vvv -p 2222 user@host

আপনি যে বার্তা পেয়েছেন তা একই ব্র্যান্ডের অন্য একটি সার্ভারের সাথে তুলনা করতে পারেন। তারপরে আপনি জানতে পারবেন সমস্যাটি ssh দিকে আছে কিনা।

(-ডিডিডি এবং -ভিভিভি সর্বোচ্চ ডিবাগ স্তর, আপনি এটি টিউন করতে পারেন)

আমি সেই লিঙ্কটি পেয়েছি , আরও বিস্তারিত।


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

2

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

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

তবে সচেতন থাকুন, এটি একটি শেষ অবলম্বন আমার ছিল বিশেষত্বটি হ'ল ssh সার্ভারটি একই সাবনেট থেকে কাজ করেছে তবে এর বাইরে নয় এবং ssh -t '/ bin / bash' কোথাও থেকে কাজ করেছে।

আমার কাছে আরএসসিএনসিও ছিল যা সূক্ষ্ম শুরু হবে, তবে কিছু সময় কেবল ঝুলিয়ে রাখা বা সংযোগটি ফেলে দিন।

সুতরাং আপনি যদি এই উত্তরটির দিকে তাকিয়ে থাকেন তবে প্রথমে উপরের অন্যান্যদের চেষ্টা করে দেখুন এবং আপনি যদি আমার মতো বিজোড়তা পান তবে এটিই সম্ভবত সাহায্য করবে।

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

সুতরাং যারা সাহায্য করেছেন তাদের সবাইকে ধন্যবাদ


1

আপনি যখন তা করবেন ssh some_user@some_host /bin/bash, আপনি কি করছেন চালু করা হয় some_user এর শেল (যেমন সংজ্ঞায়িত /etc/passwdউপর some_host ) এবং তারপর দেওয়া কমান্ডটি নির্বাহ করার /bin/bashযে শেল থেকে।

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

উদাহরণস্বরূপ, অনুরোধ /bin/bashকমান্ডটি চালু হয়েছে তবে এটি স্তব্ধ হয়ে গেছে বলে মনে হচ্ছে।

আপনি sshযেভাবেই কোনও পিটিআই তৈরি করতে বলার মাধ্যমে এটি ঠিক করতে পারেন যাতে শেল এবং এটির শিশু প্রক্রিয়াগুলির জন্য একটি উপলব্ধ থাকে। এটি কি -tকরে।

    $ ssh -t some_user@some_host bash

কমান্ডকে একটি pty তৈরির জন্য জোর করে আপনি এটিও ঠিক করতে পারেন। কারণ bash, আপনি একটি -iযুক্তি পাস করে এটি করেন। নিম্নলিখিত কমান্ড-লাইনের কাজ করা উচিত:

$ ssh some_user@some_host bash -i

দ্রষ্টব্য, তবে এই পরবর্তী ক্ষেত্রে, শেলটি অ্যাক্সেস করতে পারে না /dev/ttyএবং এর ফলে একটি সতর্কতা হয়:

bash: no job control in this shell

এর কারণগুলি এখানে ব্যাখ্যা করা হয়েছে । শেলটিতে আপনি কী পরিকল্পনা করছেন তার উপর নির্ভর করে এটি সমস্যা হতে পারে বা নাও পারে তবে ssh -tসম্ভবত ব্যবহার করা সবচেয়ে ভাল বিকল্প।

(দ্রষ্টব্য যে আপনি কেবল bashকমান্ড হিসাবে পাস করতে পারেন কারণ এটি যেভাবেই ব্যবহারকারীর ডিফল্ট শেলের পথে হওয়া উচিত)


1

আমি সম্প্রতি নেস্টেড ভার্চুয়ালাইজেশন প্ল্যাটফর্মটি ব্যবহার করার সময় আমার একই সমস্যা রয়েছে।

এটি উত্স বা গন্তব্য সার্ভারে এমটিইউ 1500 থেকে 1400 থেকে হ্রাস করার পরে কাজ করে।

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