Есть ли способ передать информацию о конфигурации оболочки при SSHing на хост?

Я знаю, как установить запрос GNOME-терминалов (или xterms!) На зеленый / красный относительно последнего кода выхода:

vi .bashrc export PROMPT_COMMAND='PS1="` if [[ \$? = "0" ]]; then echo "\\[\\033[0;32m\\]"; else echo "\\[\\033[0;31m\\]"; fi`[\u@\h \w]\[\e[m\] "' export PS1 

на картине:

введите описание изображения здесь

но если я войду на удаленный сервер, то эти настройки цвета не сработают!

Как я могу настроить его для работы на удаленных терминалах? К сожалению, я не могу добавить указанные строки на удаленные серверы .bashrc .

  • выполнить команду над соединением ssh
  • ssh от linux до mac - разрешено отклонение
  • Как сделать обновление хранилища версий в crontab?
  • SSH Дважды в bash alias / function
  • Как восстановить графический интерфейс процесса после сломанной трубы
  • Проблема туннелирования X с удаленной машины
  • ssh на сервер с использованием .ssh / config alias и запускать псевдоним на сервере в одно и то же время
  • Конкретный пользовательский SSH-RSA с корневым доступом (через AWS EC2)
  • 2 Solutions collect form web for “Есть ли способ передать информацию о конфигурации оболочки при SSHing на хост?”

    Вы пытаетесь изменить приглашение, отображаемое удаленной оболочкой. Это, конечно, требует изменения файла конфигурации удаленной оболочки, то есть .bashrc .

    Если вы не хотите изменять файл, и вам действительно нужно использовать эту общую учетную запись (вставьте обязательное ворчание об общих учетных записях), и вы входите в систему через ssh, вы можете (ab) использовать command= option в ~/.ssh/authorized_keys . Ключ с параметром команды хорош только для запуска указанной команды; но команда в файле authorized_keys выполняется с переменной среды SSH_ORIGINAL_COMMAND установленной для указанной пользователем (пустой для интерактивных сеансов). Таким образом, вы можете использовать что-то вроде этого в ~/.ssh/authorized_keys :

     command="HOME=$HOME/.HOME.lance; if [ -n \"$SSH_ORIGINAL_COMMAND\" ]; then eval \"$SSH_ORIGINAL_COMMAND\"; else exec \"$SHELL\"; fi" ssh-rsa AAAA…== lance@example.com 

    Обратите внимание, что я помещал разрывы строк выше для удобочитаемости, но на самом деле это должно быть все в одной строке в файле authorized_keys .

    Затем поместите ваши любимые файлы конфигурации в каталог .HOME.lance .

    Для случайного использования вы можете явно указать файл профиля или запустить любую команду оболочки. Передайте опцию -t чтобы иметь терминал, если вы хотите запускать интерактивные команды.

     ssh shared-account@server "LS_COLORS='$LS_COLORS' ls --color" ssh -t shared-account@server '. ~/.profile.drew; exec zsh' 

    Если вы хотите редактировать или копировать файлы на удаленном компьютере, вы можете использовать сетевую файловую систему, такую ​​как SSHFS (для клиентов unix) или Tramp (для Emacs), и работать с комфортом в вашей локальной среде.

    При входе в удаленную систему вам предоставляется новая оболочка. В частности, оболочка в системе REMOTE. Чтобы ваши любимые настройки оболочки на другой машине, вам также нужно будет установить свои предпочтения на этом компьютере. Это означает, что вам нужно будет установить приглашение командной строки приглашения в файле .bashrc на удаленном сайте. Он разработан таким образом.

    В качестве побочного примечания, возможно, что при входе на удаленный компьютер удаленная машина может предположить, что у вас менее эффективный терминал, чем у вас. Если ваш PS1 установлен правильно, попробуйте также установить свою переменную TERM, когда вы попадете на новую машину. Удаленные компьютеры часто принимают довольно немой терминал для всех удаленных логинов, но они часто фактически поддерживают достойные, и вы можете подделать его для использования разумных параметров, но вынуждая эту переменную среды к чему-то способному, например xterm-color.

    Linux и Unix - лучшая ОС в мире.