नो ट्टी प्रेजेंट और नो आस्कपास प्रोग्राम निर्दिष्ट आउटपुट लाइन उन ssh त्रुटि संदेशों में से एक है जो वास्तव में वह सब मददगार नहीं है क्योंकि यह वास्तव में इस मुद्दे पर नहीं पहुंचता है कि समस्या क्या है। संभावना से अधिक, जब आप संदेश देखते हैं तो आप वास्तव में किसी प्रकार के वैध टीटीई के साथ काम कर रहे होते हैं और आपने शायद एसएसएच पर अपना सुडो पासवर्ड दर्ज करने के साथ ही ठीक काम किया है। आप एक वाक्य रचना गलती से निपटने की संभावना से अधिक हैं, लेकिन संदेश सीधे इस तथ्य को संबोधित नहीं करता है।
चूंकि यह स्वयं एसएसएच से जुड़ी एक समस्या है, इसलिए आप माइक्रोसॉफ्ट विंडोज़ पर लिनक्स, फ्रीबीएसडी, मैकोज़ और सिगविन की यूनिक्स सेवाओं पर समस्या को पुन:उत्पन्न करने में सक्षम होंगे। सौभाग्य से, इन सभी प्लेटफॉर्म पर सुधार काफी हद तक समान होना चाहिए।
विधि 1:ssh के लिए एक टर्मिनल ढूँढना
जब आप पहले से ही टर्मिनल से काम कर रहे हैं, तो एसएसएच को शायद इसका एहसास नहीं है। इस तथ्य के बावजूद कि आप कमांड प्रॉम्प्ट विंडो के अंदर हैं, यह अभी भी एक TTY टर्मिनल एमुलेटर की तलाश करने की कोशिश कर रहा है। इसका परीक्षण करने के लिए त्रुटि को पुन:उत्पन्न करने का प्रयास करें। हमने एक उदाहरण के रूप में काम करने के लिए एक वर्चुअल मशीन को कॉन्फ़िगर किया और ssh [email protected] 'sudo /var/mail/startup.sh' चलाया। एक परीक्षण के रूप में। स्वाभाविक रूप से, आप कमांड और ssh लाइन को उस चीज़ से बदलना चाहेंगे जो आप जो करने की कोशिश कर रहे हैं उससे मेल खाती हो।
आप यह सुनिश्चित करना चाहेंगे कि आप उस सर्वर में लॉग इन कर रहे हैं जिसे आपने सोचा था कि आप थे। भले ही, यह देखने के लिए जांचें कि क्या आप अभी भी सूडो प्राप्त करते हैं:कोई ट्टी मौजूद नहीं है और कोई आस्कपास प्रोग्राम निर्दिष्ट त्रुटि संदेश नहीं है। संभावना से अधिक, यदि आप इसे अभी भी प्राप्त कर रहे हैं तो आप इसे तीन बार देखेंगे और संभवत:आपको अपना पासवर्ड दर्ज करने के लिए भी कहा जाएगा, यदि आप स्थानीय रूप से डेबियन या उबंटू पर sudo चला रहे हैं।
अपनी सिंटैक्स त्रुटि को ठीक करने के लिए ssh के बाद -t जोड़ने का प्रयास करें। दस में से नौ बार यह ssh को खुद को एक वर्चुअल TTY आवंटित करने के लिए मजबूर करेगा और यह दिखावा करेगा कि यह एक वास्तविक टर्मिनल के अंदर चल रहा है। आपको अपने आदेश के बारे में कुछ और नहीं बदलना है। बस ssh अक्षर के बाद -t विकल्प जोड़ें और फिर होस्ट और पास कमांड को समान रखें। यदि आपको कभी भी अपने आदेश के बाद के भाग में ssh चलाना पड़े तो आप इसे ध्यान में रखना चाहेंगे।
उदाहरण के लिए, यदि आपको ssh -t [email protected] 'ssh [email protected]' के रूप में स्वरूपित कमांड चलाते समय इसी प्रकार की त्रुटि मिल रही थी इसे रोकने के लिए आपको पहले ssh के बाद -t विकल्प रखना होगा। ध्यान दें कि यदि आपने बाद में डेटा का उत्पादन या उपभोग करने के लिए दूसरी कमांड को बदल दिया है, तो आप -t का उपयोग बिल्कुल नहीं करना चाहेंगे। उदाहरण के लिए, यदि आपने स्क्रिप्ट के बजाय कैट चलाना शुरू किया है तो आप -t को डंप कर सकते हैं क्योंकि आपको उसके लिए एक टर्मिनल आवंटित करने की आवश्यकता नहीं होगी।
विधि 2:visudo फ़ाइल को पैच करना
आपके पास एक कॉन्फ़िगरेशन समस्या भी हो सकती है जो यह त्रुटि उत्पन्न करती है। sudo visudo . जारी करके visudo फ़ाइल को संशोधित करें आदेश, और ध्यान रखें कि आप कभी भी इस फ़ाइल को किसी अन्य तरीके से संपादित नहीं करना चाहेंगे। आपको एक पंक्ति मिलनी चाहिए जिसमें ALL =NOPASSWD की सुविधा हो और उसके बाद उन प्रकार के कमांड हों जिन्हें चलाने के लिए आपको व्यवस्थापक का पासवर्ड दर्ज करने की आवश्यकता नहीं है।
लाइन पर अंतिम को छोड़कर प्रत्येक व्यक्तिगत कमांड को अल्पविराम से समाप्त करने की आवश्यकता होती है। इस प्रकार यदि आपके पास कुछ ऐसा है जो पढ़ता है जैसे /sbin/poweroff /sbin/start /sbin/stop यह इन सभी को एक ही कमांड के रूप में मानेगा और त्रुटि को आप पर फेंक देगा। इसी तरह, यदि आप एक कमांड को याद कर रहे हैं जिसे आप ssh के माध्यम से चलाने का प्रयास कर रहे हैं तो आपको यह त्रुटि भी मिलेगी। त्रुटि अभी भी प्रतिलिपि प्रस्तुत करने योग्य है या नहीं यह जाँचने से पहले आवश्यक समायोजन करें और फ़ाइल को सहेजें।
अगर ऐसा करने और सेवा को फिर से शुरू करने के बाद भी आपको त्रुटि होती है, तो नीचे दी गई छवि में निम्न आदेश आज़माएं और सुनिश्चित करें कि PermitTTY लाइन में इसके बाद हाँ शब्द है। यदि यह आपकी फ़ाइल की अंतिम पंक्ति है, तो सुनिश्चित करें कि बाद में एक रिक्त नई पंक्ति है। डिफ़ॉल्ट रूप से GNU नैनो इस कार्य को स्वचालित रूप से करता है।
त्रुटि संदेश को फिर से पुन:पेश करने का प्रयास करने से पहले आपको किसी भी प्रासंगिक सेवाओं को पुनरारंभ करना होगा।