Я использую определенную подсказку "PS1", которую я люблю. Я совместно использую несколько логинов с другими другими людьми на нескольких различных серверах. Я задавался вопросом, был ли способ указать в моем локальном профиле удара удаленную подсказку или какой-либо другой путь другой затем копия и вставляющий каждый раз I удаленный в.
Загрузите файл на каждой удаленной машине, скажите ~/.my_custom_bashrc
, с Вашим пользовательским bash
конфигурация, (в этом случае PS1=...
) затем запуск ssh
с:
ssh user@host -t "bash --rcfile ~/.my_custom_bashrc -i"
Можно легко использовать a bash
функционируйте как обертку для удобочитаемости.
Если Вы просто хотите отправить PS1
переменная, и это не содержит a '
(одинарная кавычка), попробуйте:
ssh targethost -t "PS1='$PS1'; exec bash"
Локальное .bashrc
может перезаписать PS1
хотя (благодаря Dennis Williamson для указания на это).
Существуют способы передать переменные среды по 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
.
(Конечно, общие учетные записи являются плохой идеей, но я понимаю, что Вы не можете иметь возможности изменять ту ситуацию.)
ssh -t user@host "remote='$PS1' bash -i"
Затем при подсказке:
PS1=$remote
можно указать переменные среды на стороне клиента и если ssh-сервер позволяет ее (проверьте sshd-конфигурацию человека), эти переменные копируются в сессию, когда Вы входите в машину.
таким образом необходимо было бы настроить .bashrc на сервере, чтобы проверить существующий PS1 (или безотносительно переменной) и только установить PS1, если это уже не установлено.
или, которые делают вещи более простыми, Вы связываете свои настройки в функцию.. и разверните ту функцию любой как специальный файл Ваш источник по требованию (source joes_bashrc
) или непосредственно к .bashrc. наличие Вашего собственного файла кажется более устойчивым. другие люди могли бы использовать Ваши настройки, но не вынуждены сделать так.