पासवर्ड के बिना SSH पर sudo कमांड को कैसे सक्षम करें?


13

मेरे पास सर्वर ए और सर्वर बी (दोनों Ubuntu 10.04 एलटीएस) अलग-अलग कार्य कर रहे हैं। सर्वर ए को सर्वर बी को पॉकेट करने की आवश्यकता है, जो एक फ़ाइल उत्पन्न करता है और जब यह किया जाता है तो सर्वर ए पर वापस आ जाता है। यह सब इन-हाउस है और मैं सुरक्षा मुद्दों के बारे में बहुत चिंतित नहीं हूं। SSH कुंजी विनिमय पहले से ही सर्वर A और B के बीच किया जाता है और ठीक काम करता है।

सर्वर B पर, स्क्रिप्ट generateOfflineSigजैसा दिखता है

#!/bin/bash
echo "in script"
sudo apt-offline set offline_package.sig --install-packages "$0"
echo "after sudo"
scp offline_package.sig jeff@servera:/tmp

सर्वर B पर भी, visudo की यह प्रविष्टि है:

jeff ALL=NOPASSWD: ALL

जो काम करता है अगर मैं sudo lsसर्वर बी पर निष्पादित करता हूं ... कोई पासवर्ड नहीं पूछा गया।

दुर्भाग्य से SSH हमेशा सर्वर A पर पासवर्ड मांगता है:

jeff@servera:~$ ssh -t jeff@serverb /home/jeff/generateOfflineSig "incron"
in script
[sudo] password for jeff:

कोई विचार? पासवर्ड इनपुट द्वारा इस प्रक्रिया को बाधित नहीं किया जा सकता है।


/etc/sudoersसिंटैक्स का 100% यकीन नहीं है , लेकिन मेरी फ़ाइल में लाइन है # %wheel ALL=(ALL) NOPASSWD: ALL। शायद आपकी लाइन होनी चाहिए jeff ALL=(ALL) NOPASSWD: ALL?
स्नैपशॉट

क्या पूरे दूरस्थ कमांड को उद्धरणों में नहीं होना चाहिए? आप स्क्रिप्ट को ए
एलक्यूक्यू

वास्तव में ... मुझे लगता है कि स्नैपशॉट किसी चीज पर है। मैं अपने खुद के सवाल का जवाब थोड़ा बाद में दूंगा ...
जेफ

जवाबों:


16

ऐसा लगता है जैसे मैंने /etc/sudoersफ़ाइल में एक "टाइपो" था ...

jeff ALL=NOPASSWD: ALL

फ़ाइल के बहुत अंत में होना चाहिए । उबंटू सहायता केवल फ़ाइल के अंत में (...) जोड़ें (यदि अंत में नहीं है तो इसे बाद की प्रविष्टियों द्वारा शून्य किया जा सकता है)

उसके बाद, पासवर्ड कभी भी "जेफ की सुडो कमांड्स के लिए नहीं पूछा जाता है, या तो स्थानीय रूप से या एसएसएच पर।

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