Назад | Перейти на главную страницу

Используйте SSH для выполнения команды удаленного экспорта и оставайтесь в системе

У меня простая проблема: мне нужно выполнить команду экспорта по ssh, а затем оставаться в системе, но у меня возникли проблемы. Хотя я заинтересован в решении этой проблемы по многим причинам, основная из них заключается в том, что я могу настроить вкладки терминала на имя по своему выбору.

Вот команда, которая у меня есть:

ssh -t root@somehost "export PROMPT_COMMAND=''; echo -ne '\033]0;MY_TAB_NAME'; echo -ne '\007'; /bin/bash -i"

Это довольно странно, и я думаю, что я почти что там. Параметр -t открывает pty (псевдотерминал), а параметр / bin / bash -i открывает интерактивный сеанс bash (таким образом, оставаясь в системе после выполнения команды ssh. Команда экспорта просто очищает приглашение, чтобы следующее эхо было переименуйте его.

У меня проблема в том, что экспорт, похоже, не выполняется в правильной оболочке. Я думаю, что мне не хватает чего-то довольно простого.

Кроме того, я пытаюсь сделать это исключительно на основе командной строки, не используя различные файлы .bash. У меня есть сотни серверов, к которым я подключаюсь, и у меня есть простой способ добавить в закладки все подключения, но мне просто нужен способ указать имя каждой вкладки в моем терминале (Mac OS X, готов использовать iTerm, если существует более простое решение).

Спасибо!

Возможно, вам стоит взглянуть на использование ~/.ssh/environment или environment вариант в ~/.ssh/authorized_keys вместо. Увидеть sshd(8) справочную страницу для подробностей.

ssh host -t VAR=VALUE bash --login

У меня простая проблема: мне нужно выполнить команду экспорта по ssh, а затем оставаться в системе [...]

Просто чтобы решить ваш главный вопрос, не вдаваясь в остальную часть проблемы. Если вы хотите экспортировать некоторые переменные (или другой материал среды), вы можете использовать env.

В env Команда позволяет запускать программу в измененной среде. Следовательно, вы можете использовать его для запуска bash -i на удаленном сервере, изменяя среду по желанию.

Я оставляю вам только один пример:

hmontoliu@laptop:~$ ssh -t remoteuser@remoteserver env EXPORTEDSTUFF='foo' MOREXPORTEDSTUFF='bar' bash -i
remoteuser@remoteserver's password: 
remoteuser@remoteserver:~$ echo $EXPORTEDSTUFF 
foo
remoteuser@remoteserver:~$ echo $MOREXPORTEDSTUFF 
bar

Проверьте страницу руководства env

HTH