Ssh-add द्वारा जोड़े गए पहचानों को बचाएं ताकि वे बने रहें


19

मैंने हाल ही में सेटअप किया है opensshताकि मैं इसका उपयोग कर सकूं git

इसे स्थापित करने की प्रक्रिया में ( इस लेख के अनुसार ) मैंने आज्ञाएँ दीं:

$ eval "$(ssh-agent -s)"
$ ssh-add ~/.ssh/<name of key>

कुछ समय बाद, जब मैंने लॉग आउट किया और वापस उपयोग करने की कोशिश की तो git pushमुझे एक त्रुटि मिली। इस त्रुटि का हल फिर से उन्हीं कमांडों को चला रहा था।

कृपया बताएं कि मैं कैसे कर सकता हूं

  • ssh-agentदौड़ते रहो ताकि मुझे एक नई शुरुआत न करनी पड़े
  • उन कुंजियों को याद रखें जिन्हें मैंने जोड़ा है इसलिए मुझे उन्हें हर बार नहीं जोड़ना है

बस स्पष्ट करने के लिए, मैं zsh का उपयोग करता हूं इसलिए कुछ निश्चित बैश फीचर मेरे .zshrc में काम नहीं करेंगे।


आपको यह समझने के साथ शुरू करना चाहिए कि यह क्या है ssh-agentऔर यह आपके मुड़ उपयोग के मामले के अनुरूप होने से पहले कैसे काम करता है।
जकूज़ी

आपको क्या त्रुटि हुई?
जकुजे 19

@Jakuje त्रुटि एक लापता पब के बारे में थी और पूछा कि "क्या आपने ssh-agent शुरू किया है?"।
टाइमोट्री

जवाबों:


22

क्या है ssh-agentऔर यह कैसे काम करता है?

ssh-agentस्मृति में और अपने सत्र में सुरक्षित रूप से अपने decrypted कुंजी रहता है। रिबूट / री-लॉगइन के बीच डिक्रिप्ट कीज़ को संरक्षित करने का कोई उचित और सुरक्षित तरीका नहीं है।

ठीक है, मैं इसे कैसे स्वचालित कर सकता हूं?

स्वचालित ssh-agentस्टार्टअप

जोड़ना

[ -z "$SSH_AUTH_SOCK" ] && eval "$(ssh-agent -s)"

आपके ~/.bashrcया अन्य स्टार्टअप स्क्रिप्ट ( ~/.zshrc) के लिए।

स्वचालित कुंजी जोड़ रहा है

जब आप जोड़ते हैं, तो कुंजी पहले उपयोग पर स्वचालित रूप से जोड़ी जा सकती है

AddKeysToAgent yes

अपने को ~/.ssh/config

अधिक जानकारी के लिए ~/.ssh/configदेखें man ssh_config


तो आप कह रहे हैं कि अगर मैं AddKeysToAgent को सक्षम करता हूं, तो जब भी मैं टाइप eval "$(ssh-agent -s)"करता हूं यह मेरी कुंजी जोड़ देगा?
तैमोट्री डिक

यदि एजेंट चल रहा है और आपका sshविकल्प इस विकल्प का समर्थन करता है, तो हाँ।
जकूज़ी

क्या आप कृपया स्पष्ट कर सकते हैं कि मैं ssh-agentतत्कालीन शुरुआत को कैसे स्वचालित करूंगा ?
टाइमोट्री

मूल रूप से, जैसा कि अन्य उत्तर में बताया गया है। [ -z "$SSH_AUTH_SOCK" ] && eval $(ssh-agent)
जकूज़ी

क्या वह काम करता है zsh के साथ?
टाइमोट्री

5

इसमें जोड़ें ~/.bashrc

इसका मतलब यह है कि जब आप कोई दूसरा सत्र नहीं खोलते हैं तो ssh- एजेंट अपने आप शुरू हो जाएगा

if [ -z "$SSH_AUTH_SOCK" ] ; then
 eval `ssh-agent -s`
fi

यदि आपको एजेंट में जोड़ने के लिए एक कुंजी की आवश्यकता है, तो इसे भी जोड़ें

if [ -z "$SSH_AUTH_SOCK" ] ; then
 eval `ssh-agent -s`
 ssh-add ~/.ssh/<your private ssh key>
fi

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