я получил куча хороших вещей в моей конфигурации bash. Обычно, когда я получаю новую учетную запись, я снимаю ее с мое репозиторий GitHub так что у меня есть все псевдонимы и функции, к которым я привык. Есть несколько хостов, к которым я обращаюсь, на которых у меня нет собственных учетных записей, но есть общие учетные записи, которые использует множество людей, поэтому было бы грубо с моей стороны установить конфигурацию оболочки.
Есть ли способ передать мою конфигурацию оболочки или хотя бы некоторые команды инициализации через сеанс SSH, чтобы у меня была среда, к которой я привык?
Я люблю хранить файл .bsa
в удобном месте (может быть ~
будет работать в этом случае) так что я могу просто . ~/.bsa
получить мою среду.
Вставьте обязательное ворчание об общих учетных записях, но если у вас хотя бы есть собственный ключ ssh, вы можете (ab) использовать command=
вариант в ~/.ssh/authorized_keys
файл. Ключ с параметром команды подходит только для выполнения указанной команды; но команда в файле authorized_keys работает с переменной среды SSH_ORIGINAL_COMMAND
установить на команду, указанную пользователем (пусто для интерактивных сеансов). Таким образом, вы можете использовать что-то подобное в ~/.ssh/authorized_keys
:
command="HOME=$HOME/.HOME.drew;
if [ -n \"$SSH_ORIGINAL_COMMAND\" ]; then
eval \"$SSH_ORIGINAL_COMMAND\";
else exec \"$SHELL\"; fi" ssh-rsa AAAA…== drew@example.com
Обратите внимание, что я поместил разрывы строк выше для удобочитаемости, но на самом деле это должно быть все в одной строке в authorized_keys
файл.
Затем поместите свои любимые файлы конфигурации в этот .HOME.drew
каталог.
Для пунктуального использования вы можете явно указать файл профиля или запустить любую команду оболочки. Пройти -t
возможность иметь терминал, если вы хотите запускать интерактивные команды.
ssh shared-account@server "LS_COLORS='$LS_COLORS' ls --color"
ssh -t shared-account@server '. ~/.profile.drew; exec zsh'
Если вы хотите только редактировать или копировать файлы на удаленном компьютере, вы можете использовать сетевую файловую систему, например SSHFS (для клиентов unix) или Бродяга (для Emacs) и работайте, не выходя из вашей локальной среды.
Может быть, попробовать что-нибудь взломать вместе с "LocalCommand" (см. Man ssh_config)?