गैर-इंटरैक्टिव ssh sudo ... सादे पाठ में पासवर्ड के लिए संकेत देता है


9

मैं कुछ गैर-इंटरैक्टिव ssh कमांड चला रहा हूं। Ssh ऑथेंटिकेशन में ssh एजेंट के माध्यम से फाइन का ध्यान रखा जाता है, लेकिन अगर मुझे एक कमांड चलाना है जिसमें sudo की आवश्यकता है तो मेरे टर्मिनल में पासवर्ड प्रॉम्प्ट प्लेन टेक्स्ट है। उदाहरण के लिए:

ssh remotemachine "sudo -u www mkdir -p /path/to/new/folder"

मुझे सादे पाठ में पासवर्ड के लिए संकेत देगा। क्या किसी को पता है कि मैं इसे सामान्य सुरक्षित संकेत का उपयोग करने के लिए कैसे प्राप्त कर सकता हूं या मैं एक स्विच के माध्यम से पासवर्ड पारित कर सकता हूं? (तब मैं कमांड भेजने से पहले इस तरफ एक सुरक्षित संकेत स्थापित कर सकता हूं)

किसी भी प्रकार की मदद की बेहद सराहना की जाती है।

जवाबों:


13

उपयोग करें ssh -t:

आदमी ssh

-t   Force pseudo-tty allocation. This can be used to execute arbitrary 
     screen-based programs on a remote machine, which can be very useful, 
     e.g. when implementing menu services. Multiple -t options force tty 
     allocation, even if ssh has no local tty.

तो आपकी आज्ञा होगी

ssh remotemachine -t "sudo -u www mkdir -p /path/to/new/folder"

यदि आप पासवर्ड दर्ज नहीं करना चाहते हैं, तो आप sudoersकमांड का उपयोग करके संशोधित कर सकते हैं (यदि आपको अनुमति हो तो) visudo

NOPASSWD:उदाहरण के लिए, पैरामीटर जोड़ें

username ALL=(ALL) NOPASSWD: /bin/mkdir

यदि आप / sudoers को संपादित / आदि नहीं कर सकते हैं, तो आप उपयोग कर सकते हैं sudo -S:

आदमी सूदो

-S      The -S (stdin) option causes sudo to read the password from
        the standard input instead of the terminal device.  The
        password must be followed by a newline character.

उसके साथ, कमांड होगी

echo "your_password" | ssh remotemachine -t \
     "sudo -S -u www mkdir -p /path/to/new/folder"

याद रखें कि यह आपके पासवर्ड को आपके शेल के इतिहास (bash के साथ, वह ~/.bash_historyफ़ाइल होगी ) में जोड़ देगा ।

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