मेरी समस्या यह है, कि मुझे सर्वर पर env वैरिएबल (जैसे GIT_EXEC_PATH) सेट करने हैं। मुझे हर कनेक्शन के द्वारा वैरिएबल चाहिए (ताकि बैश द्वारा और रिमोट कमांड द्वारा या तो)। मैं .bash_profile के साथ बैश करके उन चर को सेट करने में कामयाब रहा, लेकिन मुझे दूरस्थ कमांड के साथ समस्या है। मैंने पाया कि वास्तविक rsa कुंजी से पहले ~ / .ssh / प्राधिकृत_पत्रों में कमांड लिखना संभव है, लेकिन मैं वहां हमेशा लिखना नहीं चाहता, मुझे एक स्थायी समाधान की आवश्यकता है ... मैंने पाया कि ~ / .ssh / आरसी फ़ाइल को हर ssh लॉगिन द्वारा निष्पादित किया जाता है, इसलिए मैंने अपना env वैरिएबल घोषणाओं को वहां रखा, लेकिन यह काम नहीं किया। चर आरसी फ़ाइल में सेट किए जाते हैं, लेकिन इसके बाद वे गायब हो गए। : S हो सकता है कि rc फाइल एक सबस्क्रिप्शन में चले: S क्या कोड डुप्लीकेशन के बिना bash में और रिमोट कमांड में उन वेरिएबल्स को परिभाषित करने का कोई तरीका है?
संपादित करें:
मैंने प्रश्न को संपादित किया, क्योंकि सर्वर एक गोडैडी शेयर्ड होस्ट है, इसलिए इसका एक अनूठा विन्यास है। / Etc / ssh / sshd_config और / etc / ssh / ssh_config फ़ाइलें खाली हैं। उन फ़ाइलों में टिप्पणियां हैं, यदि आप उत्सुक हैं तो मैं इसे यहां कॉपी कर सकता हूं।
- ~ / .Bash_profile को सॉर्ट किया जाता है (केवल बैश कनेक्शन द्वारा),
- ~ / .bashrc कभी भी खट्टा नहीं है,
- ~ / .प्रोफाइल कभी भी खट्टा नहीं है,
- ~ /। ssh / वातावरण कभी भी सुगंधित नहीं होता है,
- ~ /। ssh / rc को (bash और रिमोट दोनों के द्वारा) खट्टा किया जाता है, लेकिन मुझे लगता है कि इसे सब-उप में कहा जाता है, क्योंकि चर गायब हो जाते हैं।
- ~ / .Ssh / अधिकृत_कीप्स हर बार खट्टा हो जाता है, लेकिन मुझे हर rsa कुंजी से पहले कमांड लिखना होगा (इसलिए मैं उस से कॉन्फ़िगर नहीं करना चाहता)।
सारांश:
मैं बैश को अच्छी तरह से कॉन्फ़िगर कर सकता हूं (.bash_profile), लेकिन मैं दूरस्थ कॉल को कॉन्फ़िगर नहीं कर सकता। यही समस्या है। मैं एक ऐसी फाइल की तलाश कर रहा हूं, जो बैश और रिमोट कमांड दोनों से सोर्स की गई हो।
उदाहरण के लिए:
Git-upload-pack कमांड exe फाइल को ढूँढता है, क्योंकि GIT_EXEC_PATH env वैरिएबल सेट है, लेकिन रिमोट के साथ: "git clone user@domain.com: myrepo local / myrepo" सर्वर को वह कमांड नहीं मिलती है, क्योंकि GIT_EXEC_PATH सेट नहीं है।
EDIT2:
के अनुसार इस , और मेरे printenv लॉग्स: ~ / .ssh / आर सी, सामान्य खोल में चल रहा है, subshell में नहीं है, तो यह एक पहेली क्यों env चर चिपके हुए नहीं है ...
मैंने एक निष्पादन योग्य बनाया: ~ / logenv :
echo "" >> mylog.txt
date >> mylog.txt
printenv >> mylog.txt
echo "" >> mylog.txt
और इसे ~ / .ssh / rc में डालें :
export AAA=teszt
source ~/logenv
बैश लॉगिन और "स्रोत लॉगेनव" द्वारा परिणाम था:
Tue May 15 04:21:37 MST 2012
TERM=cygwin
SHELL=/bin/bash
SSH_CLIENT=censored
SSH_TTY=/dev/pts/2
USER=myuser
AAA=teszt
MAIL=/var/mail/myuser
PATH=/usr/local/bin:/bin:/usr/bin
PWD=/home/content/65/7962465
SHLVL=3
HOME=/var/chroot/home/content/65/7962465
LOGNAME=myuser
SSH_CONNECTION=censored
_=/usr/bin/printenv
Tue May 15 04:21:41 MST 2012
HOSTNAME=censored
TERM=cygwin
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=censored
दूरस्थ "ssh myuser@domain.com ' द्वारा ' ~ ~ logenv ' का परिणाम था:
Tue May 15 04:25:52 MST 2012
SHELL=/bin/bash
SSH_CLIENT=censored
USER=myuser
AAA=teszt
MAIL=/var/mail/myuser
PATH=/usr/local/bin:/bin:/usr/bin
PWD=/home/content/65/7962465
SHLVL=3
HOME=/var/chroot/home/content/65/7962465
LOGNAME=myuser
SSH_CONNECTION=censored
_=/usr/bin/printenv
Tue May 15 04:25:52 MST 2012
SHELL=/bin/bash
SSH_CLIENT=censored
USER=myuser
PATH=/usr/local/bin:/bin:/usr/bin
MAIL=/var/mail/myuser
PWD=/home/content/65/7962465
HOME=/var/chroot/home/content/65/7962465
तो आरसी फ़ाइल को सॉर्ट किया गया है, लेकिन उसके बाद चर गायब हो रहे हैं ...: एस