2010-09-16 4 views
8

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

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

क्या कदम मैं इस, ऐसा विशेष रूप से इतना है कि मैं Heroku पर स्थानीय रूप से और परीक्षण परीक्षण कर सकते हैं बनाने के लिए क्या करने की जरूरत है।

लगता है कहीं कोई कमांड लाइन से कुंजियों को जोड़ने की Heroku पर एक तरह से है जैसे, ताकि वे गहरे लाल रंग का-ऑन-रेल एप्लिकेशन में रहते हैं की जरूरत नहीं है। लेकिन स्थानीय विकास के बारे में क्या?

उत्तर

4
उन्हें एक प्रारंभकर्ता में ले जाएँ और .gitignore को

संपादित फ़ाइल जोड़ने

:

initializers बुलाया config में एक निर्देशिका है। यह वह जगह है जहां आप कोड डालते हैं जिसे आपका एप्लिकेशन शुरू होने पर एक बार चलाने के लिए माना जाता है। अतीत में, पर्यावरण सेटिंग्स का उपयोग इन सेटिंग्स के लिए किया गया था, लेकिन प्रारंभकर्ता चीजें बेहतर व्यवस्थित रखते हैं। मैं "load_keys.rb" नामक प्रारंभिक निर्देशिका में एक फ़ाइल बनाउंगा या ऐसा कुछ। इस फ़ाइल में, आप सटीक कोड डाल देंगे जो आपके पर्यावरण.आरबी फ़ाइल में था जिसे आप जिथब में नहीं चाहते हैं।

+0

हाय, क्षमा करें, इनिटियालाइज़र में जाने से आपका क्या मतलब है? – Angela

+0

कोई समस्या नहीं, मैंने प्रारंभिकताओं के बारे में अधिक जानकारी के साथ अपनी मूल पोस्ट अपडेट की। मुझे लगता है कि आप जानते हैं कि क्या .gitignore है क्योंकि आपने नहीं पूछा था। –

+0

हां, धन्यवाद, मैं परिचित हूं .gitignore :) मैं निर्देशिका से परिचित हूं लेकिन मुझे यकीन नहीं था कि इसके साथ क्या करना है .... – Angela

1
  1. अपनी निजी कुंजी को सामान्य रूप से ~/.ssh में रखें।
  2. पासफ़्रेज़ के साथ अपनी निजी कुंजी एन्क्रिप्ट करें।
  3. keychain इंस्टॉल करें।
  4. अपने ~/.bashrc, ~/.profile, ~/.bash_profile या क्या आपके पास करने के लिए eval $(keychain private-key-file1 private-key-file2 private-key-file3; source ~/.keychain/${HOSTNAME}-sh) जोड़ें। (Heroku पर config vars) (csh, tcsh के लिए कीचेन आदमी पृष्ठ देखें, zsh, या जो कुछ भी)
16

आप वातावरण चर का उपयोग कर सकते अपने एपीआई कुंजी स्टोर करने के लिए और उन्हें स्रोत में जांच नहीं।

एक project के लिए है कि मैं पर काम कर रहा हूँ, मैं twitter-auth का एक कांटा का उपयोग करें, और ग्राहक रहस्य और env चर से कुंजी को पढ़ने में इसे बदल:

http://github.com/dpmcnevin/twitter-auth/blob/ace5d60a8ed8121cca4c97ef30a0cd025b99bfe1/lib/twitter_auth.rb#L68

OAuth::Consumer.new(
    ENV['oauth_consumer_key'] || config['oauth_consumer_key'],   
    ENV['oauth_consumer_secret'] || config['oauth_consumer_secret'], 
    options 
) 

मैं तो की स्थापना स्थानीय उपयोग के लिए परियोजना निर्देशिका में मेरी .rvmrc में कुंजियाँ:

export oauth_consumer_key=xxxxxxxxxxxx 
export oauth_consumer_secret=xxxxxxxxxxxxxxxxxxx 
rvm [email protected] 

और अंत में पर्यावरण की स्थापना Heroku पर ronment चर:

$ heroku config:add oauth_consumer_key=xxxxxxxxxxxxx 
$ heroku config:add oauth_consumer_secret=xxxxxxxxxxxxx 
$ heroku config 
DATABASE_URL   => postgres://..... 
RACK_ENV    => production 
oauth_consumer_key => xxxxxxxxxxxxxxxx 
oauth_consumer_secret => xxxxxxxxxxxxxxxxxxx 

तो बस सुनिश्चित करें कि आपके .rvmrc.gitignore में है और उसके बाद आप किसी भी API कुंजियां प्रकट किए बिना GitHub के लिए धक्का कर सकते हैं।

+0

क्या कोई भी आपके हेरोकू को धक्का देने के लिए उपयोग नहीं कर सकता है, केवल उसकीोकू कॉन्फ़िगरेशन के साथ चाबियाँ पढ़ सकता है ? – TLK

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