स्पष्ट रूप से ssh के माध्यम से पर्यावरण चर को पास करना भी संभव है। इसके माध्यम से कुछ सर्वर-साइड सेट-अप की आवश्यकता होती है, इसलिए यह एक सार्वभौमिक उत्तर नहीं है।
मेरे मामले में, मैं बैकअप स्टोरेज सर्वर पर कमांड के लिए एक बैकअप रिपॉजिटरी एन्क्रिप्शन कुंजी को पास करना चाहता था, उस कुंजी को वहां संग्रहीत किए बिना, लेकिन ध्यान दें कि किसी भी पर्यावरण चर में दिखाई दे रहा है ps
! स्टड पर कुंजी को पारित करने का समाधान भी काम करेगा, लेकिन मैंने इसे बहुत बोझिल पाया। किसी भी स्थिति में, ssh के माध्यम से पर्यावरण चर को कैसे पार किया जाए:
सर्वर पर, sshd_config
फ़ाइल को संपादित करें , आम तौर पर /etc/ssh/sshd_config
और AcceptEnv
उन चर से मेल खाता एक निर्देश जोड़ें जो आप पास करना चाहते हैं। देखते हैं man sshd_config
। मेरे मामले में, मैं बोर्ग बैकअप के लिए चर पास करना चाहता हूं, इसलिए मैंने चुना:
AcceptEnv BORG_*
अब, क्लाइंट पर -o SendEnv
पर्यावरण चर भेजने के लिए विकल्प का उपयोग करें । निम्न कमांड लाइन पर्यावरण चर को सेट करती है BORG_SECRET
और फिर इसे ग्राहक मशीन (जिसे कहा जाता है backup
) में भेजा जाना है । यह तब printenv
वहां चलता है और BORG चर के लिए आउटपुट को फ़िल्टर करता है:
$ BORG_SECRET=magic-happens ssh -o SendEnv=BORG_SECRET backup printenv | egrep BORG
BORG_SECRET=magic-happens