ssh पर su -c निष्पादित करें


10

मैं SSH पर एक सर्वर के BIOS संस्करण की जांच करने की कोशिश कर रहा हूं, एक कमांड जिसे रूट विशेषाधिकारों की आवश्यकता होती है:

ssh remote-server su -c dmidecode

लेकिन यह पाठ्यक्रम त्रुटि के साथ विफल हो जाता है:

मानक एक tty होना चाहिए

मैं यह काम कैसे पूरा कर सकता हूं? मैं sudo का उपयोग नहीं कर सकता, और जब मैं रूट @ रिमोट-सर्वर के रूप में लॉग इन करने का प्रयास करता हूं, तो यह 'su' कमांड के लिए उपयोग किए जाने वाले पासवर्ड को स्वीकार नहीं करेगा। मैं RedHat Enterprise Linux 4 का उपयोग कर रहा हूं।


मैं "सू-सी" के बजाय
सुडो

1
जैसा कि मैंने निर्दिष्ट किया "मैं सूदो का उपयोग नहीं कर सकता"
अरोन

मुझे लगता है कि "मुझे सूदो का उपयोग क्यों नहीं किया जा सकता है" के बारे में अधिक जानकारी थी, मुझे अच्छा लगा।
डानायसॉउर

@dannysauer सभी OS के पास नहीं है। मैं यहां एक ही समस्या को हल करने की कोशिश कर रहा हूं, सिवाय इसके कि मैं ओपी की तरह रेडहैट पर नहीं हूं। मैं एक यूनिक्स संस्करण पर हूं जिसमें कोई सुडो नहीं है। मैं उत्सुक हूं कि ओपी रेडहैट पर इसका उपयोग क्यों नहीं कर सकता है, लेकिन मैं वैसे भी आभारी हूं कि सवाल पूछा गया है।
Loduwijk

sudo सभी UNIX वेरिएंट पर बनाता है जिनसे मैं परिचित हूं, लेकिन मैं सहमत हूं कि यह उन सभी पर स्थापित (या कॉन्फ़िगर) नहीं है। मैं वास्तव में अधिक उत्सुक था कि इसे वहां क्यों नहीं कॉन्फ़िगर किया गया (मुझे लगता है - यह कुछ साल रहा है)। : D
dannysauer

जवाबों:


13

-tएक tty आवंटित करने के लिए ssh को मजबूर करने के लिए उपयोग करें :

ssh -t -t remote-user su -c dmidecode

आप सीधे रूट को ssh की अनुमति देने पर भी विचार कर सकते हैं। यदि आप सार्वजनिक कुंजी प्रमाणीकरण का उपयोग कर रहे हैं, तो यह अधिक सुरक्षित हो सकता है क्योंकि आप एक पासवर्ड को पास नहीं कर रहे होंगे। यदि आप ऐसा करने का निर्णय लेते हैं, तो निम्नलिखित को डालकर अपने विश्वसनीय आईपी पतों को छोड़कर कहीं से भी रूट लॉगिन को रोकने पर विचार करें /etc/security/access.conf:

+ : root : 10.20.30.40
- : root : ALL EXCEPT LOCAL

और सुनिश्चित करें UsePAMकि इसमें अक्षम नहीं हैsshd_config


2
किसी भी कारण से आप -tअपने उदाहरण में दो को शामिल करते हैं?
wufulk

2
मैन पेज के अनुसार, बहु-विकल्प विकल्प "बल ट्टी आबंटन, भले ही ssh में कोई लोकल ट्टी हो"
हीथ

यह मेरे लिए फेडोरा पर काम नहीं करता है। यह स्क्रिप्ट को मेरे पासवर्ड के लिए संकेत देने की अनुमति देता है, लेकिन मेरा पासवर्ड प्लेनटेक्स्ट के रूप में प्रदर्शित होता है, और जब मैं एंटर दबाता हूं, तो यह लटका रहता है।
सेरिन

@ क्रिस एक अलग समस्या है। एक नया सवाल पूछने की कोशिश करें।
जियोकार

@ डबल-टी के बारे में टिप्पणी के लिए धन्यवाद, कि Centos पर मेरे लिए काम करता है
पॉल शेल्डरके

0

क्या आप केवल एक मानक उपयोगकर्ता के रूप में रिमोट सर्वर पर लॉग इन नहीं कर सकते हैं और फिर sudo का उपयोग कर सकते हैं ?

आप ssh द्वारा निष्पादित की जाने वाली कमांड को उद्धृत करने का भी प्रयास कर सकते हैं, जैसे कि

ssh remote-server 'su -c dmidecode'

या

ssh remote-server "su -c dmidecode"

3
-1 क्योंकि कमांड का हवाला देना उसकी कमी को हल करने के लिए नहीं है। Sudo सुझाने के लिए +1। यह एक धोने है।
wufulk

जैसा कि मैंने निर्दिष्ट किया "मैं सुडो का उपयोग नहीं कर सकता"
अरोन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.