2009-09-22 11 views
6

सबसे पहले, मुझे अच्छी तरह पता है कि इस विषय के बारे में कई प्रश्न हैं। मैंने उन्हें पढ़ा है, लेकिन फिर भी मेरी स्थिति के लिए एक उचित जवाब पता लगा सकता है।शैल स्क्रिप्ट में एससीपी का उपयोग करते समय पासवर्ड प्रॉम्प्ट का जवाब कैसे दें?

मैं पूरे ~/cs###/assign1 डीआईआर को स्थानीय से स्कूल घर डीआईआर से एक शेल स्क्रिप्ट के साथ करना चाहता हूं। मेरा सवाल यह है कि, क्या मेरे स्क्रिप्ट में पासवर्ड प्रॉम्प्ट की प्रतीक्षा करने का कोई तरीका है, और फिर मेरे बोर्ड में 'टाइप' करने के लिए कुंजी बोर्ड ईवेंट अनुकरण करें?


here कैसे स्थापित करने के लिए कुंजी

+0

यह प्रश्न आपकी स्थिति की तरह लगता है: http://stackoverflow.com/questions/50096/how-to-pass-password-to-scp – innaM

+0

ध्यान दें कि मूलभूत डुप्लिकेट प्रश्न के उत्तर में 'ssh कुंजी का उल्लेख नहीं है जैसा कि बीजेड द्वारा उल्लेख किया गया है। –

+0

मैं उम्मीद कर रहा था कि केवल सरल खोल या यूनिक्स कमांड का उपयोग करके समाधान हो सकता है। – derrdji

उत्तर

10

SSH कुंजियों हैं अनुमति नहीं की एक बहुत विस्तृत मार्गदर्शिका है? यह एक बेहतर समाधान होगा।

+2

हाँ, यह कुंजी है। :-) –

2

मुझे नहीं लगता कि आप आसानी से ऐसा कर सकते हैं। आप क्या कर सकते हैं इसके बजाय सार्वजनिक कुंजी प्रमाणीकरण का उपयोग कर रहे हैं।

इन पंक्तियों

ssh-keygen -t rsa 
ssh school mkdir .ssh/ 
cat ~/.ssh/id_rsa.pub | ssh school "cat >>.ssh/authorized_keys" 

(या dsa) के साथ कुछ।

लेकिन हे, यह सर्वरफॉल्ट नहीं है, है ना? ;-)

+0

सर्वर और सबकुछ स्कूल द्वारा स्थापित किया गया था, मेरे पास उस अंत में सेटिंग का कोई नियंत्रण नहीं है – derrdji

+2

ये सेटिंग्स आपकी होम निर्देशिका में हैं। –

3

कुंजी, या बाहरी पुस्तकालय का उपयोग करने पर विचार करें।

मुझे नहीं लगता कि यह संभव है अन्यथा (मुझे आशा है कि मैं गलत नहीं हूं), क्योंकि यह स्वचालित ब्रूट फोर्स घुसपैठ और पासवर्ड की सूँघना लगाता है।

ऐसे पुस्तकालय हैं जो आप चाहते हैं जो कर सकते हैं (एसएफटीपी प्रोटोकॉल का उपयोग करें, एसपीपी नहीं बुलाएं), जैसे कि libssh

फिर से, मैं अत्यधिक कुंजी की अनुशंसा करता हूं।

+0

चलो, स्वचालित ब्रूट फोर्स हमलों को पुस्तकालयों का उपयोग करके भी किया जा सकता है ;-) –

0

यदि आप एक विंडोज मशीन से निर्देशिका को माउंट कर सकते हैं (उदा। एएफएस, एनएफएस या एसएमबी के माध्यम से जो मेरे विश्वविद्यालय की विंडोज लैब्स ने किया था), तो आप -12w स्विच के साथ pscp का उपयोग कर सकते हैं।

-1

क्यों न केवल "-r" विकल्प का उपयोग इसे प्रतिलिपि बनाने के लिए करें? या इसके बजाय rsync का उपयोग करें?

आप सार्वजनिक कुंजी प्रमाणीकरण का भी उपयोग कर सकते हैं, जिसके लिए आपके पास एक वास्तविक उपयोगकर्ता खाता होने तक उनके अंत में कोई सहायता की आवश्यकता नहीं है। देखें this

0

आप यह नहीं कहते कि आप घर और स्कूल में किस प्लेटफ़ॉर्म का उपयोग कर रहे हैं।मान लिया जाये कि लिनक्स, Cygwin या ओएस/एक्स आप कई विकल्प हैं:

  1. सार्वजनिक कुंजी प्रमाणीकरण अगर यह है सर्वर
  2. ssh-एजेंट और कम से बंद नहीं किया गया एक बार प्रति अपना पासवर्ड दर्ज करने ssh-जोड़ने सत्र

विकल्प के लिए (1), आप

  1. ssh-keygen का उपयोग कर घर पर एक कुंजी युग्म,पर कोई पासफ़्रेज़ से उत्पन्न होगानिजी कुंजी। ध्यान दें कि पासफ्रेज को छोड़ना शायद एक अच्छा विचार नहीं है यदि अन्य लोग एक ही कंप्यूटर का उपयोग करते हैं, लेकिन आपका उद्देश्य पासवर्ड में टाइप करना था।
  2. अपने स्कूल खाते में सार्वजनिक कुंजी को अपलोड करने और "मैं identityfile" विकल्प है, जहां identityfile अपनी निजी कुंजी को पूर्ण पथ है साथ में ~/.ssh/authorized_keys
  3. उपयोग SCP रखें। या, .ssh को/config (आदमी पृष्ठों को देखने के)

दूसरा विकल्प के लिए एक प्रवेश जोड़ने के लिए, ssh-एजेंट के लिए प्रति सत्र एक स्थानीय प्रक्रिया एक बार में अपना पासवर्ड कैश करने के लिए अनुमति देता है। आप एक समाप्ति समय निर्धारित करते हैं

1

मैं मानता हूं कि आपको चाबियाँ का उपयोग करना चाहिए। लेकिन expect प्रक्रिया के इंटरैक्टिव पहलू को स्वचालित कर सकता है अगर आप सादा-पाठ स्क्रिप्ट फ़ाइल में अपना पासवर्ड हार्डकोड करना चाहते हैं।

10

"sshpass" का प्रयोग करें!

#!/bin/bash 
sshpass -p "password" scp -r /some/local/path [email protected]:/some/remote/path 
+0

'sshpass' दिलचस्प लग रहा है। ऐसी प्रणाली पर काम करना जो एसएसएच कुंजी के साथ अच्छी तरह से काम नहीं करेगा, इसलिए यह करेगा। धन्यवाद! – JakeGould

0

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

0

एक बार जब आप ssh-keygen की स्थापना के रूप में समझाया here, आप

scp -i ~/.ssh/id_rsa /local/path/to/file [email protected]:/path/in/remote/server/

कर सकते हैं जहां id_rsa स्थानीय ssh-keygen सेटअप में उत्पन्न कुंजी है।

आप हर बार टाइपिंग को कम करना चाहते हैं, तो आप अपने .bash_profile फ़ाइल को संशोधित करने और अपने टर्मिनल से फिर

alias remote_scp='scp -i ~/.ssh/id_rsa /local/path/to/file [email protected]:/path/in/remote/server/ 

डाल source ~/.bash_profile कर सकते हैं। इसके बाद यदि आप अपने टर्मिनल में remote_scp टाइप करते हैं तो इसे बिना पासवर्ड के scp कमांड चलाएं।

संबंधित मुद्दे