Моя проблема полягає в тому, що мені потрібно встановити змінні env (наприклад, GIT_EXEC_PATH) на сервері. Мені потрібні ці змінні при кожному з'єднанні (так само через bash та віддалені команди). Мені вдалося встановити ці змінні bash за допомогою .bash_profile, але у мене проблеми з віддаленими командами. Я виявив, що можна писати команди в ~ / .ssh / pooblasti_keys перед фактичним ключем rsa, але я не хочу писати там завжди, мені потрібно постійне рішення ... Я виявив, що ~ / .ssh / rc-файл виконується кожним sh-логіном, тому я розміщую там свої env-змінні, але це не працює. Змінні встановлюються у файлі rc, але після цього вони зникали. : S Можливо, файл rc працює в підзарядці: S Чи є спосіб визначити ці змінні в bash та віддалених командах без дублювання коду?
Редагувати:
Я відредагував це питання, оскільки сервер - це спільний хост, і він має унікальну конфігурацію. Файли / etc / ssh / sshd_config та / etc / ssh / ssh_config файли порожні. У цих файлах є коментарі, якщо вам цікаво, я можу скопіювати його сюди.
- Програма ~ / .bash_profile створена (лише за допомогою bash-з'єднань),
- ~ / .bashrc ніколи не отримується,
- ~ / .profile ніколи не отримується,
- середовище ~ / .ssh / ніколи не створюється,
- ~ / .ssh / rc є джерелом (за допомогою bash та віддалених обох), але я думаю, це називається в нижній частині, тому що змінні зникають.
- ~ / .Ssh / pooblasti_keys надходить щоразу, але я повинен писати команди перед кожною клавішею rsa (тому я не хочу налаштовувати її).
Підсумок:
Я можу налаштувати bash добре (за допомогою .bash_profile), але не можу налаштувати віддалені дзвінки. У цьому проблема. Я шукаю файл, який базується як на bash, так і на віддалені команди.
Наприклад:
Команда git-upload-pack знаходить файл exe, оскільки змінна GV_EXEC_PATH env встановлена, але з віддаленим: "git clone user@domain.com: myrepo local / myrepo" сервер не знаходить цієї команди, оскільки GIT_EXEC_PATH не встановлено.
Edit2:
Відповідно до цього , і мій журнал printenv: ~ / .ssh / rc працює в звичайній оболонці, а не в нижній частині, тому це загадка, чому змінні env не прилипають ...
Я створив виконуваний файл: ~ / logenv :
echo "" >> mylog.txt
date >> mylog.txt
printenv >> mylog.txt
echo "" >> mylog.txt
І помістіть це в ~ / .ssh / rc :
export AAA=teszt
source ~/logenv
По bash login & "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 'exec ~ / 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
Таким чином, rc-файл розміщений, але після цього змінні невтішні ...: S