Мне было интересно, есть ли способ изменить каталог по умолчанию, который я помещаю после SSH на мой сервер Ubuntu.
99% времени, когда я захожу на свой сервер, это доступ к файлам в определенном каталоге:
/var/www/websites
Есть ли файл конфигурации, который я могу отредактировать, чтобы убедиться, что я сразу попал в этот каталог при входе в систему?
.profile
вместо.bashrc
, но это зависит от вашего варианта использования..profile
выполняется только для интерактивных входов в систему (например, shell), но.bashrc
также выполняется для неинтерактивных входов в систему (например, scp, rsync и т. д.). Кроме того, .profile чаще вызывается оболочками, которые не являются bash (например, zsh).Если вы используете ключи для входа по SSH, вы можете изменить путь,
command=
предварительно указав ключ~/.ssh/authorized_keys
на удаленном сервере. Пример:Можно генерировать и использовать несколько ключей для одного и того же пользователя. Один ключ на сервере может содержать команду, а другой - нет - таким образом, вы выбираете ожидаемое поведение во время входа в систему. Вы можете просто обернуть это с местным
~/.ssh/config
:Вот что произойдет:
или:
источник
$SSH_ORIGINAL_COMMAND
вместо того,/bin/bash -l
чтобы заставить инструменты работать (в моем случае, hg). Или,$SHELL
если вы не хотите использовать жесткий код для bash. Не уверен, как заставить работать инструменты и логины людей.Openssh sshd по умолчанию принимает эти переменные окружения от клиента:
Вы можете использовать это для отправки значения из локальной среды клиента на сервер следующим образом:
Вы можете поместить директиву SendEnv в ~ / .ssh / config, чтобы вам не приходилось включать ее в командную строку.
Если вы поместите в свой ~ / .profile следующее (для воздействия только на интерактивные входы в систему используйте .profile, для влияния на все входы в систему используйте .bashrc):
Затем он автоматически изменит каталог на каталог, указанный в переменной среды при входе в систему, если он указан и является ли он каталогом.
источник
LC_*
трюк