फिक्स: छद्म-टर्मिनल आवंटित नहीं किया जाएगा क्योंकि स्टडिन एक टर्मिनल नहीं है



समस्याओं को खत्म करने के लिए हमारे साधन का प्रयास करें

ज्यादातर मामलों में, आपको एक भ्रामक 'छद्म-टर्मिनल आवंटित नहीं किया जाएगा, क्योंकि स्टडिन एक टर्मिनल नहीं है' केवल तभी जब आप किसी स्क्रिप्ट से कुछ प्रकार की SSH कमांड चला रहे हों। यदि आप कमांड लाइन से एक ही कमांड चला रहे हैं, तो यह पूरी तरह से ठीक काम कर सकता है।



आगे जाने से पहले, सुनिश्चित करें कि आपने अपनी सार्वजनिक कुंजी को SSH एजेंट में जोड़ लिया है और फिर ssh का उपयोग करने का प्रयास करें। आपको बस एक कुंजी याद आ रही होगी। दूसरी ओर, यदि यह काम नहीं करता है, तो आपको अपनी स्क्रिप्ट में थोड़ी समस्या निवारण करने की आवश्यकता होगी।



विधि 1: छद्म टिट आवंटन को जबरन और अक्षम करना

कमांड लाइन विकल्प की एक जोड़ी है जो आपके लिए समस्या को जल्दी से ठीक कर सकती है। Ssh -t -t -R की कोशिश करें बाकी जो आप छद्म टर्मिनल आवंटन के लिए बाध्य करने के लिए कनेक्ट करने की कोशिश कर रहे थे। उदाहरण के लिए, मान लें कि आप उदाहरण के लिए अपने खाते में लॉग इन करने के लिए ssh -p 80 appuals@ssh.example.com का उपयोग करने जा रहे थे, जो निश्चित रूप से प्रलेखन के लिए एक डमी है जो मौजूद नहीं है।



उदा। ssh -t -t -R -p 80 appuals@ssh.example.com और देखें कि क्या यह समस्या ठीक करता है। सिस्टम में सफलतापूर्वक लॉग इन करने के लिए आपको निश्चित रूप से नाम को अपने वास्तविक खाते और होस्टनाम से बदलना होगा। यह एक टर्मिनल के आवंटन को मजबूर करता है, इसलिए आपको यह नहीं देखना चाहिए कि छद्म टर्मिनल आवंटित नहीं किया जाएगा क्योंकि स्टड टर्मिनल त्रुटि नहीं है।

दूसरी ओर, आप त्रुटि संदेशों की निरंतर स्ट्रिंग के साथ समाप्त हो सकते हैं। कुछ उपयोगकर्ताओं ने टिप्पणी की है कि इसे मनोरंजक माना जा सकता है।

हालांकि यह निश्चित रूप से निराशाजनक है, इसलिए प्रक्रिया को मारने के लिए Ctrl + C का उपयोग करें।



छद्म टर्मिनल

आप या तो केवल -t स्विच का उपयोग करके या संख्या बढ़ाकर देख सकते हैं। यदि यह काम नहीं करता है, तो किसी भी -t स्विच को कमांड में -T स्विच से बदलें, उदा। ssh -T -R -p 80 appuals@ssh.example.com और देखें कि क्या काम करता है।

यह विधि संपूर्ण छद्म-टर्मिनल आवंटन प्रक्रिया को पूरी तरह से निष्क्रिय कर देती है, इसलिए यह उन मामलों में काम कर सकता है जहां यह बाध्य नहीं करता है। बेशक, इसमें से कोई भी कमांड लाइन से कोई समस्या नहीं होनी चाहिए, लेकिन यह सुनिश्चित कर लें कि जब आपको पता चले कि आपकी स्क्रिप्ट में से कौन सा विकल्प काम करता है, तो आप इसे भविष्य की किसी भी स्क्रिप्ट में उपयोग कर सकते हैं, जिसे आपको सर्वर कहा जाना है।

चूंकि ssh कमांड ने इन दो विपरीत विकल्पों को समान नाम दिए थे, इसलिए याद रखें कि यह छद्म टर्मिनलों के आवंटन के लिए मजबूर करता है जबकि यह इसे लागू करता है। ये विकल्प संवेदनशील होते हैं, और वे अक्सर स्क्रिप्ट के अंदर से आवश्यक होते हैं क्योंकि ssh को काम करने के लिए पारंपरिक TTY टर्मिनल की आवश्यकता होती है। स्वाभाविक रूप से, इस मामले में आप इस उद्देश्य के लिए अपने टर्मिनल एमुलेटर का उपयोग कर रहे हैं।

विधि 2: sshpass का उपयोग करना

कुछ लोगों को लग सकता है कि उनकी स्क्रिप्ट sshpass कमांड के साथ बेहतर काम करती है, जो डिफ़ॉल्ट रूप से शामिल नहीं है। यदि आप इसे आज़माना चाहते हैं या क्योंकि आपको अपने विशिष्ट उपयोग के मामले में इसकी आवश्यकता है, तो आप इसे हमेशा sudo apt-get install sshpass या sudo yum install sshpass के साथ स्थापित कर सकते हैं।

यदि आप पहले से इसका उपयोग नहीं कर रहे हैं, तो संभवतः आपको इसकी आवश्यकता नहीं है। फिर भी, आप इस तरह के वातावरण में छद्म टर्मिनल आवंटन से संबंधित त्रुटि संदेशों को आश्चर्यचकित करने के लिए समान तकनीकों का उपयोग कर सकते हैं।

उदाहरण के लिए, sshpass -p पासवर्ड ssh -T appuals@ssh.example.com का उपयोग करें ताकि सिस्टम को आपकी स्क्रिप्ट के अंदर से काम करने के लिए मजबूर किया जा सके।

विधि 3: नौकरी प्रबंधन त्रुटियों को ठीक करना

इस अवसर पर आपको यह सब ठीक करने के बाद भी एक और त्रुटि संदेश मिल सकता है। यदि आपको कोई चेतावनी प्राप्त होती है, जिसमें ट्टी का कोई उपयोग नहीं होता है और फिर आपको याद दिलाया जाता है कि आपके शेल में कोई जॉब कंट्रोल नहीं है, तो आपको सामान्य रूप से कुछ काम करने में सक्षम होना चाहिए।

यह त्रुटि किसी csh, tsh या संभवत: Almquist या अन्य शेल से संबंधित दूरस्थ सर्वर पर अनियमित होने के कारण होती है। आपने इसे देखा नहीं हो सकता है क्योंकि आपको अन्य त्रुटि संदेश मिल रहे थे, लेकिन बशर्ते कि आप छद्म-टर्मिनलों के बारे में किसी अन्य को नहीं देखेंगे, यह संभव है कि आप जिस तरह से आम तौर पर होते हैं उसी तरह अपेक्षाकृत जारी रखना संभव हो।

आप प्रक्रियाओं को रोकने के लिए इस मामले में Ctrl + Z का उपयोग करने का प्रयास नहीं करना चाहते हैं, हालांकि, क्योंकि उन्हें फिर से शुरू करने का कोई तरीका नहीं हो सकता है। यदि आपको एक त्रुटि संदेश मिल रहा है जो पढ़ता है कि जब आप बाहर निकलते हैं तो नौकरियों को रोक दिया जाता है, तो आपको लॉगआउट करने की अनुमति नहीं होगी।

नौकरी रोक दी

प्रक्रिया में काम खोने का मन नहीं है, यह मानते हुए कि आप जो भी काम बंद कर सकते हैं, उसे बंद करने के लिए ps और किल कमांड का उपयोग करें। अब आप बाहर निकल सकेंगे

टैग लिनक्स कैसे? ssh 3 मिनट पढ़ा