किसी दिए गए SSH होस्ट के लिए एक चर सेट करना


17

में ssh_config, एक मेजबान का उपयोग कर कुछ पर्यावरण चर निर्यात करने के लिए चुन सकते हैं SendEnv

क्या इस चर के लिए दिए गए मूल्य को प्रति मेजबान के लिए मजबूर करने का एक तरीका भी है? उदाहरण के लिए, क्या वैरिएबल $FOOसे barकनेक्ट होने पर ही वैल्यू के साथ वेरिएबल एक्सपोर्ट करना संभव होगा example.com?


जवाबों:


16

आप एक पर्यावरण चर के लिए एक विशिष्ट मूल्य नहीं दे सकते हैं ssh_config, लेकिन आप निश्चित रूप से मौजूदा पर्यावरण चर को केवल विशिष्ट मेजबानों के लिए भेज सकते हैं।

Host example.com
    SendEnv FOO

श्रृंखला को पूरा करने के लिए:

FOO=bar ssh user@example.com

अंत में, दूरस्थ सर्वर को AcceptEnvइसके अंदर सूचीबद्ध पर्यावरण चर होना चाहिए sshd_config

AcceptEnv FOO

आप क्या बचना चाहते हैं?
माइकल हैम्पटन

1
किसी दिए गए मान के साथ एक चर भेजने के लिए एक उपनाम लिखना।
.फिंक

क्षमा करें, और कुछ नहीं जो आप कर सकते हैं ... जब तक आप अपने मन को पढ़ने के लिए कंप्यूटर प्राप्त नहीं कर सकते। :)
माइकल हैम्पटन

6
मेरे शक की पुष्टि हालांकि ;-) क्या मैं पसंद किया है चाहता हूँ की तरह कुछ होता लिए धन्यवाद SetVar FOO='bar'में ssh_config);
ℝaphink

2
मेरे लिए आवर्ती मामला यह है कि पुरानी प्रणालियाँ समर्थन नहीं करती हैं, TERM=tmux-256colorइसलिए मुझे दूरस्थ होस्ट (वाइल्डकार्ड्स) के साथ कमबैक चाहिए।
जेड

4

आप SetEnvअपने ~/.ssh/config, जैसे, का उपयोग करके एक विशिष्ट मूल्य दे सकते हैं

Host *
  SetEnv FOO=bar

प्रति के रूप में man ssh_config:

सर्वर पर भेजे जाने के लिए एक या अधिक पर्यावरण चर और उनकी सामग्री को सीधे निर्दिष्ट करें। इसी तरह SendEnv, पर्यावरण चर को स्वीकार करने के लिए सर्वर तैयार होना चाहिए।

मान लें कि आपके सर्वर को निम्नलिखित पंक्ति मिली /etc/ssh/sshd_config:

AcceptEnv LANG LC_* FOO

भी की जाँच करें: man ssh_configऔर man sshd_config


2
हैरान पाठक के लिए ध्यान दें (खुद की तरह, जब मैंने पहली बार इसे पढ़ा है): यह ओपनएसएसएच 7.8 के बाद से नया है, 2018 के अगस्त में जारी किया गया है, और ओएस अपडेट के माध्यम से औसत उपयोगकर्ता के लिए उपलब्ध होने में थोड़ा समय लगेगा। (लेकिन एक बार जब यह आम हो जाता है, तो यह समस्या का अब तक का सबसे अच्छा समाधान होगा)
इरफ़ी

1

एक और विचार है कि ssh कमांड में पर्यावरण चर को सेट किया जाए और एक इंटरेक्टिव शेल को चलाया जाए, जैसे। मैं env-var 'MANWIDTH' के साथ एक संवादात्मक शेल आह्वान करने की कोशिश कर रहा हूँ:

ssh example.com 'MANWIDTH=120 bash -li'

0

आप .ssh / config फ़ाइल का उपयोग करके प्रति होस्ट कॉन्फ़िगरेशन मान सेट कर सकते हैं। उदाहरण के लिए:

Host example.com
SendEnv FOO

ध्यान दें कि सर्वर को भी इसका समर्थन करना चाहिए।

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