Нажатие моей подсказки PS1 по ssh

Я использую конкретный запрос PS1, который мне нравится. Я разделяю несколько логинов с другими людьми на нескольких разных серверах. Мне было интересно, есть ли способ указать в моем локальном профиле bash удаленное приглашение или любой другой способ, кроме копирования и вставки каждый раз, когда я удаляю.

20
задан Unfundednut
06.02.2023 14:15 Количество просмотров материала 3216
Распечатать страницу

8 ответов

Загрузить файл на каждом удаленном компьютере, скажем ~/.my_custom_bashrc, С вашим custom bash настройки (в данном случае PS1=...), а затем запустить ssh С:

ssh user@host -t "bash --rcfile ~/.my_custom_bashrc -i"

вы можете легко использовать bash функции как обертка для удобочитаемости.

13
отвечен cYrus 2023-02-07 22:03

если вы просто хотите, чтобы отправить 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_* переменные окружения through (обычно они используются для настройки локали). Если выполняются оба этих условия, можно задать переменную, которая фактически не используется для локалей, скажем LC_USER, на клиенте сторона, и проверить его на сервере .profile.

(конечно, общие учетные записи-плохая идея, но я понимаю, что вы не можете изменить эту ситуацию.)

9
отвечен Gilles 2023-02-08 00:20

вставьте приглашение PS1 в~/.ssh / environment и SSH сессия будет нести его на каждый хост вы войти. Это работает для меня с openssh 4.3p2 .

2
отвечен Valmik 2023-02-08 02:37
ssh -t user@host "remote='$PS1' bash -i"

затем, в командной строке:

PS1=$remote
2
отвечен Dennis Williamson 2023-02-08 04:54

вы можете указать переменные окружения на стороне клиента и если ssh-сервер это позволяет (проверьте man sshd-config), эти переменные копируются в сеанс при входе в машину.

Итак, вам придется настроить .bashrc на сервере, чтобы проверить существующий PS1 (или любой другой переменной) и только установить PS1, если он еще не установлен.

или, что делает вещи проще, вы связываете свои настройки в функцию .. и развернуть эту функцию либо как особый файл ваш источник по требованию (source joes_bashrc) или непосредственно .bashrc. наличие собственного файла кажется немного более надежным. другие люди могут использовать ваши настройки, но не обязаны это делать.

1
отвечен akira 2023-02-08 07:11

не делиться логинами. SSH как сами, то делайте sudo -su shareduser (-s означает "раковина").

Make sudo сохраните свой домашний каталог:

Defaults env_keep += "HOME"
1
отвечен grawity 2023-02-08 09:28

Если вы хотите сделать это без необходимости дополнительного scp вы можете сделать что-то вроде этого:

ssh -t srvname ' cp ~/.bashrc ~/.bashrc.n &>/dev/null ; echo "LS_COLORS=\"no=00:fi=00:ETC:ETC:ETC\";" >> ~/.bashrc.n ; echo "export LS_COLORS" >> ~/.bashrc.n ; echo "alias ls=\"ls --color=auto\";" >> ~/.bashrc.n ; exec bash --rcfile ~/.bashrc.n'

вот сгенерируем .bashrc.n это основано на серверах bashrc, но с вашими переопределениями.

1
отвечен neuron 2023-02-08 11:45

вы можете делать такие вещи, как монтаж вашего дома через sshfs/nfs, но самое простое решение-это scp вашего bashrc на новую машину. Это также приносит псевдонимы и прочее.

-2
отвечен Dentrasi 2023-02-08 14:02

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх