2012-09-04 15 views
32

मैं एसएसएच के माध्यम से मैन्युअल रूप से वेबसाइटों को तैनात करता हूं, मैं जिथब/बिटबकेट में स्रोत कोड प्रबंधित करता हूं। प्रत्येक नई साइट के लिए मैं वर्तमान में सर्वर पर एक नया कीपैयर उत्पन्न कर रहा हूं और इसे जिथब/बिटबकेट में जोड़ रहा हूं, ताकि मैं सर्वर से संभावना खींच सकूं।एसएसएच सत्र में स्थानीय कीपैयर को कैसे आगे बढ़ाया जाए?

मैं सर्वर है, जो ssh_options[:forward_agent] = true

है मैं कुछ इस तरह करते हैं और सर्वर मैं SSH हूँ करने के लिए अपने स्थानीय मशीन के कुंजीयुग्म अग्रेषित कर सकते हैं कैसे करने के लिए अद्यतन खींचने के लिए स्थानीय मशीन के कुंजी युग्म का उपयोग करने के Capistrano में एक सुविधा में आए में, ताकि मैं प्रत्येक नई साइट के लिए github/bitbucket में कुंजी जोड़ने से बच सकूं।

धन्यवाद।

उत्तर

45

यह निकला बहुत ही सरल हो सकता है, पूरा गाइड यहाँ Using SSH Forwarding

है संक्षेप में, आप अगर यह मौजूद नहीं है, एक ~/.ssh/config फ़ाइल बनाने के लिए की जरूरत है।

फिर, (फ़ाइल में या तो डोमेन नाम या IP पता और ForwardAgent yes सेट) होस्ट

नमूना कोड:

Host example.com 
    ForwardAgent yes 

SSH जीवन बनाता है बहुत आसान।

+5

उत्तर में जुड़े महान आलेख; ओएसएक्स उपयोगकर्ताओं के लिए सारांशित करने के लिए आपको 'sudo vim/etc/ssh_config' की आवश्यकता हो सकती है और स्थानीय एजेंट को उस पहचान को आगे बढ़ाने की अनुमति देने के लिए 'फॉरवर्डएजेंट नो' होस्ट वाइल्डकार्ड अक्षम और फिर 'ssh-add ~/.ssh/your_key' को हटा दें। – cfeduke

+0

'echo' होस्ट example.com को जोड़ना \ n फॉरवर्डएजेंट हां '>> ~/.ssh/config' काम नहीं करेगा यदि आप सार्वजनिक ip 'ssh node-1.example.com' का उपयोग करके ssh से कनेक्ट करते हैं तो' एजेंट आगे का उपयोग कर ssh $ {user} @ $ (hostname -s) '। यह आपके पासवर्ड के लिए पूछेगा। मेरे ओएसएक्स एल कैपिटन पर – BigDong

+5

मुझे बिल्कुल/etc/ssh_config के साथ गड़बड़ करने की आवश्यकता नहीं थी, लेकिन अग्रेषण मेरे लिए काम करने से पहले मुझे 'ssh-add' चलाने की आवश्यकता थी। – the0ther

0

कॉन्फ़िगरेशन फ़ाइल बहुत उपयोगी है लेकिन एजेंट अग्रेषण के लिए चाल ssh-add कमांड करती है। ऐसा लगता है कि इसे किसी भी दूरस्थ कनेक्शन से पहले या कंप्यूटर के पुनरारंभ करने के बाद प्रारंभिक ट्रिगर किया जाना चाहिए। स्थायी रूप से कुंजी उपयोगकर्ता daminetreg से निम्नलिखित समाधान की कोशिश जोड़ने के लिए: Add private key permanently with ssh-add on Ubuntu

10
  1. बनाएं ~/.ssh/config
  2. के साथ भरें (मेजबान पता मेजबान के पते आप creds अनुमति देना चाहते है करने के लिए भेजा जाना):

    Host [host address] 
        ForwardAgent yes 
    
  3. आप पहले से ही ssh-एजेंट को चलाने नहीं किया है, इसे चलाने:

    ssh-agent 
    
  4. उस कमांड से आउटपुट लें और इसे टर्मिनल में पेस्ट करें। यह उन पर्यावरण चर सेट करेगा जिन्हें काम करने के लिए एजेंट अग्रेषण के लिए सेट करने की आवश्यकता है।वैकल्पिक रूप से, आप इस जगह ले सकता है और चरण 3 के साथ:

    ssh -A [user]@[hostname] 
    
  5. : दूरस्थ होस्ट में

    ssh-add [path to key if there is one]/[key_name].pem 
    
  6. प्रवेश करें:

    eval "$(ssh-agent)" 
    
  7. कुंजी आप ssh एजेंट के पास भेज चाहते जोड़े

  8. यहां से, यदि आप उस कुंजी को स्वीकार करने वाले किसी अन्य होस्ट में लॉग इन करते हैं, तो यह केवल काम करेगा:

    ssh [user]@[hostname] 
    
संबंधित मुद्दे