Ви прирівнюєте локальні настройки до віддалених налаштувань.
Локально, екземпляр bash, теперішня запущена оболонка, в яку ви пишете:
ssh user@host command
Виконує команду ssh (нічого більше) як ssh клієнта.
Для цього локальній оболонці потрібно не запускати підкожування або новий оболонку або логін.
Команда виконується як lsкоманда: локально.
Саме команда ssh для клієнта відкриває мережеве з'єднання з віддаленою системою, де, якщо правильно встановлено автентифікацію, буде запущена нова оболонка для виконання команди, записаної як аргумент для ssh, або, якщо аргумент не заданий, очікуйте подальших команд на цьому з'єднанні.
Ця нова віддалена оболонка обов'язково буде оболонкою для входу, оскільки віддаленому користувачеві (до цієї системи) потрібно автентифікувати для входу. Або, якщо задана якась конкретна команда, просто запустіть таку команду з автентифікованими правами користувача.
Ви можете побачити, які файли отримують, додавши $file sourcedдо початку кожного файлу (у віддаленій системі) (корінь потрібен для зміни /etc/файлів):
$ a=(~/.bashrc ~/.profile /etc/bash.bashrc /etc/profile)
$ for f in "${a[@]}"; do sed -i '1 i\echo "'"$f"' was read"\n' "$f"; done
А потім просто запустіть консоль ssh:
$ ssh sorontar@localhost
/etc/profile was read
/etc/bash.bashrc was read
/home/sorontar/.profile was read
/home/sorontar/.bashrc was read
У цьому випадку обидва bashrcфайли були прочитані тому, що кожен profileфайл мав команди для їх включення, а не тому, що оболонка входу безпосередньо їх отримувала.
$ ssh sorontar@localhost :
/etc/bash.bashrc was read
/home/sorontar/.bashrc was read
У цій системі, де bashrcчитається в обох випадках.
Не потрібно додавати source ~/.bashrcкоманду a для виконання.
Змінити PATH
Все, що вам потрібно зробити, це включити правильні налаштування, щоб змінити "$ PATH", або /etc/bash.bashrcдля всіх користувачів, які запускають оболонку в цій системі. Або ~/.bashrcдля кожного користувача, який цього потребує. Ви можете додати (або відредагувати) скелет користувача, .bashrcщоб /etc/skel/будь-який новий користувач створив потрібний файл.
Вищезазначене справедливо лише для bash. Якщо вам потрібні параметри для роботи всіх оболонок, можливо, встановлення змінної середовища PATH за допомогою файлу ssh ~/.ssh/environmentдля кожного користувача, який цього потребує. Або скористайтеся /etc/ssh/sshrcдля глобальної настройки в системі, де працює ssh-сервер (будь ласка, прочитайте розділ Файли man sshdдля отримання додаткової інформації).
.bashrcджерело, але, мабуть, є тест на інтерактивність вгорі. Необхідно застосувати те, що ви поставите перед цією перевіркою, і це те, що я роблю, щоб змусити PATH, коли сервер не дозволяє користувальницькому середовищу чи використанню~/.pam_environment.