2009-12-17 4 views
7

को नियंत्रित करना मेरे पास यह बैश फ़ाइल है, जो किसी डिवाइस पर ओपनएसएसएच के लिए आईपी, पासवर्ड इत्यादि मांगती है।बैश: एसएसएच

अब, अगर मैं ssh [email protected] का उपयोग करता हूं, तो मुझे पासवर्ड दर्ज करना होगा। यह वास्तव में परेशान है। दूसरी बात यह है; मैं अपनी स्क्रिप्ट को कमांड भेजने की अनुमति नहीं दे सकता।

यह मैं क्या want->

  1. नहीं पासवर्ड बात है, मुझे पहले से कुछ मिला है; लेकिन यह मुझसे कहता आदेशों नहीं पाए जाते हैं ?:

    #!/usr/bin/expect -f

    spawn ssh [email protected]$IPADDR

    expect "password:"

    sleep 1

    send "$rpass\r"

    1. मैं चाहता हूं कि उपयोगकर्ता कुछ मेनू देख सकें जहां से यह चुन सकता है; उसके बाद; हर आदेश उसके लिए किया जाता है। तो एक नई खिड़की की तरह, या ऐसा कुछ?

    2. मैं का उपयोग नहीं करना चाहते हैं: -Any बाहरी सामान -नहीं अतिरिक्त SSH कनेक्शन के संपादन

मार जानकारी:। जीएनयू बैश, वी 4.0.33 (1) -release (i486-pc-linux-gnu), लिनक्स मिंट पर चल रहा है। लेकिन यह कई लिनक्स distro के, और मैक पर भी उपलब्ध होना चाहिए?

+1

Dup: http://stackoverflow.com/questions/1449932 – ephemient

उत्तर

2

कई उपकरण जो आप कर रहे हैं उसे रोकने के लिए बहुत अधिक समय तक जाने के लिए। मैं पासवर्ड की बजाय इस समस्या को हल करने के लिए एसएसएच सार्वजनिक कुंजी का उपयोग करने की सलाह देता हूं।

बड़ा विकल्प खुले स्रोत के आधार पर अपना स्वयं का संशोधित एसएसएच क्लाइंट लिखना है ताकि पासवर्ड प्रबंधन पर नियंत्रण हो सके।

ओह, ठीक है, मैं भूल गया। आप शायद इसे एक पीटीआई के साथ आउटमार्ट कर सकते हैं, तब से/dev/tty जो आप नियंत्रित करेंगे। उम्मीद है कि आप इससे मदद कर सकते हैं।

+1

के रूप में मैं ने कहा: 'SSH connection' की कोई अतिरिक्त संपादन; सार्वजनिक कुंजी सहित। –

+0

मैं एसएसएच क्लाइंट को संपादित करना शुरू कर सकता हूं, लेकिन इसमें कुछ समय लगेगा। सुझाव देने के लिए धन्यवाद। –

1

अपनी मशीन के लिए सार्वजनिक कुंजी बनाने के लिए ssh-keygen का उपयोग करें, फिर ~/.ssh/authorized_keys में दूरस्थ सिस्टम में अपने स्थानीय ~/.ssh/id_rsa.pub या ~/.ssh/identity.pub कॉपी करें।

आप authorized_keys फाइल पर अनुमतियों को मजबूत करने के लिए आवश्यकता हो सकती है: chmod 600

2

Expect इंटरैक्टिव सत्र स्वचालित के लिए सामान्य उपकरण है।

+0

मैंने इसे पहले ही अपने प्रश्न में दिया है, लेकिन मेरे पास स्पॉन नहीं है और या तो भेजता है। अब, मुझे वास्तव में उन्हें डाउनलोड करना है, मेरे फ़ोल्डर में डाल दिया है? इतना कठोर –

+0

वे कमांड की उम्मीद कर रहे हैं, आप उम्मीद के माध्यम से स्क्रिप्ट चला रहे हैं, हां? –

+0

स्पॉन और भेजें वे आदेश हैं जो 'उम्मीद' पहचानते हैं। वे अलग डाउनलोड नहीं हैं। आपको यह सुनिश्चित करने की ज़रूरत है कि शेबैंग में आपके सिस्टम के लिए 'उम्मीद' का मार्ग सही है। आप शायद अपनी 'उम्मीद' स्क्रिप्ट में 'इंटरैक्ट' कमांड का उपयोग करना चाहेंगे। –

1

क्या आपने Paramiko पर विचार किया है? यह एसएसएच के साथ बातचीत के लिए एक पायथन पुस्तकालय है।

+0

क्या मैं इसके साथ गड़बड़ी कर सकता हूं? –

+1

आप जो चाहते हैं उस पर निर्भर करता है। यदि आप वास्तव में * समस्या * हल करने की कोशिश कर रहे हैं, तो आप किस बारे में अधिक जानकारी प्रदान करेंगे, यह मदद करना आसान होगा। –

+0

मैं बैश का उपयोग करने का प्रयास करता हूं, एसएसएच क्लाइंट का एक प्रकार बनाता है। मुझे वास्तव में इस परमीको विचार पसंद है; लेकिन मुझे जो करना है वह बैश के साथ बातचीत कर रहा है। कोड बैश में लिखा गया है और मैं इसे इस तरह रखना चाहता हूं। मुझे पायथन नहीं पता; मैं एक शुरुआत प्रोग्रामर हूँ।वैसे भी, मैं क्या करना चाहता हूं (लगभग) सबकुछ एसएसएच के साथ क्या संभव है; पैरामीको में पासवर्ड की तरह, सीडी निर्देशिका में; अनुमति संपादन; फ़ाइलों/फ़ोल्डरों को हटा रहा है; फ़ोल्डर्स बनाना; पीसी से डिवाइस पर फ़ाइलों/फ़ोल्डरों की प्रतिलिपि बनाना; आदि –

13

आपकी मशीन पर सादे टेक्स्ट में पासवर्ड संग्रहीत किए बिना ऐसा करने का उचित तरीका एसएसएच के साथ है।फर्स्ट रन:

ssh-keygen

यह ~/.ssh/id_rsa.pub में नया SSH कुंजी उत्पन्न होगा। उसके बाद बस चलाने:

ssh-प्रति-आईडी [email protected]

आप ओएस एक्स या किसी अन्य मशीन है कि नहीं है "ssh-प्रति-आईडी" पर कर रहे हैं एक लाइन alternatives हैं जैसे कि यह:

बिल्ली ~/.ssh/id_rsa.pub | ssh उपयोगकर्ता @ मशीन "mkdir ~/.ssh; बिल्ली >> ~/.ssh/authorized_keys"

अंत में आप सिर्फ दूरस्थ सर्वर पर ~/.ssh/authorized_keys को अपने स्थानीय मशीन पर ~/.ssh/id_rsa.pub की सामग्री को संलग्न करने के लिए की जरूरत है। आप कैसे करते हैं यह आपके ऊपर है, उपरोक्त ऐसा करने के लिए बस त्वरित शॉर्टकट हैं।

+0

मैं खुद को समझाने के लिए डाउनवॉटर के लिए प्यार करता हूं लेकिन शायद यह बहुत ज्यादा पूछ रहा है। – Chev

1

यहां तक ​​कि अगर मैं इसके लिए पीईएम कुंजी का उपयोग होता है और यह कोई पुराना विषय है, मैं भी उद्धृत करने के लिए sshpass

2

जाना उचित तरीके के रूप में यहां कहा गया है कुंजी कॉपी करने के लिए है चाहता था। वार्तालाप में कुछ जोड़ने के लिए, ऐसे मामले हैं जहां sshpass आसान हो सकता है।

सवाल विशेष रूप से एसएसएच के साथ एक प्रणाली में स्क्रिप्टिंग के बारे में पूछता है। यदि यह एक एम्बेडेड प्रणाली के विकास है, यह, कमांड लाइन विकल्पों के साथ sshpass गठबंधन करने के लिए उपयोगी हो सकता है के रूप में यह इस पोस्ट

sshpass -p raspberry ssh [email protected] 

इस के साथ

ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no [email protected] 

पुष्टि से बचने के लिए जोड़ा जा सकता है पर पढ़ता प्रश्न जो स्क्रिप्टिंग को होने से रोकते हैं।

फिर से, केवल विकास प्रणालियों में इसका उपयोग करें जहां विभिन्न मशीनें आईपी साझा करती हैं और सुरक्षा महत्वपूर्ण नहीं है।

https://ownyourbits.com/2017/02/22/easy-passwordless-ssh-with-sshh/

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

  • कोई संबंधित समस्या नहीं^_^