Если вы просто хотите отправить PS1
переменную, и она не содержит '
(одинарную кавычку), попробуйте:
ssh targethost -t "PS1='$PS1'; exec bash"
Хотя местный .bashrc
вполне может переписать PS1
(спасибо Деннису Уильямсону за указание на это).
Существуют способы передачи переменных среды через ssh , но они обычно отключены в конфигурации сервера. Если PermitUserEnvironment
директива включена в конфигурации сервера, и у каждого пользователя есть своя пара ключей (да, вам может не повезти), вы можете добавить environment="PS1=…"
в строку ~/.ssh/authorized_keys
соответствующий ваш ключ.
Если вы хотите сохранить свою собственную конфигурацию в общей учетной записи пользователя, вы можете создать свой собственный каталог файлов конфигурации и установить HOME
переменную среды, указав на этот каталог.
ssh targethost mkdir mrstatic.home
scp .bashrc targethost:mrstatic.home/
Создайте символические ссылки в mrstatic.home
каталоге, указывающие на соответствующую запись в родительском каталоге, когда вы хотите поделиться файлом с другими пользователями.
Затем войдите с
ssh targethost -t 'HOME=~/mrstatic.home; exec bash'`
Если вы хотите изменить пульт .profile
(или другой файл инициализации), вы можете автоматизировать настройки. Многие сайты пропускают LC_*
переменные среды (обычно они используются для настроек локали). Если оба эти условия выполнены, вы можете установить переменную, которая фактически не используется для локалей, скажем LC_USER
, на стороне клиента, и протестировать ее на сервере .profile
.
(Конечно, общие учетные записи - плохая идея, но я понимаю, что вы не можете изменить эту ситуацию.)
"PS1='$PS1' bash -i"
(и почему нетexec
тоже)?