Ви прирівнюєте локальні настройки до віддалених налаштувань.
Локально, екземпляр 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
.