Открыть сеанс ssh с указанным заголовком из командной строки

Открыть сеанс ssh с указанным заголовком из командной строки

У меня возникла небольшая проблема с запуском putty (из командной строки) с помощьюАргумент. Помогите мне с этим, или предложите лучший способ, если знаете :)

Команда (из «Выполнить»):

putty -ssh user@machine -pw password -m C:\test.txt

Команда "test.txt":

PROMPT_COMMAND='echo -ne "\033]0;'$( ifconfig | head -2 | tail -1 | awk '{print $2}')'\007"'

Проблема:
Он открывает сессию и тут же ее закрывает.

Что он должен делать: Открыть сеанс ssh из командной строки с определенным заголовком

Спасибо.

решение1

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

Их нельзя передать как команду(ы) для выполнения с помощью ключа -m. Этот ключ PuTTYэто подражатьповедение клиента SSH командной строки Linux:

ssh user@foo command

Таким образом, ssh регистрирует a userна fooсервере, запускается commandтам и просто выходит. Похоже, что с -m PuTTY делает то же самое.

Мое предложение

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

cat > ~/.title

Затем просто введите или скопируйте и вставьте то, что вам нужно, затем нажмите Ctrl+D. Сейчас давайте просто проверим установку заголовка:

echo -ne "\033]0;PuTTY\007"

Вы даже можете попробовать вышеизложенное прямо в терминале. Если заголовок окна PuTTY не изменился, скорее всего, ваш дистрибутив уже установленпеременная PROMPT_COMMAND по умолчанию. Вы можете убедиться в этом, выполнив следующие команды в терминале

echo $PROMPT_COMMAND
unset PROMPT_COMMAND
echo -ne "\033]0;PuTTY test\007"

Ключ в том, чтобы сбросить текущее значение PROMPT_COMMANDпеременной. Затем последняя команда должна установить заголовок окна на PuTTY test.

Мое решение

что работает для меня, так это подготовка сессии в PuTTY, сПоле «Удаленная команда» в графическом интерфейсеустановлен в:

/bin/bash --rcfile ~/.title

Только не забудьте указать имя этой сессии (например: SessionName) и нажать кнопку «Сохранить» на первой странице настроек PuTTY, рядом со списком «Сохраненные сессии» :)

Затем вы можете запустить PuTTY и указать ему загрузить эту сессию.

putty -load SessionName -l user -pw password

Да, это печально, но для сохраненной сессии нет эквивалента командной строки для поля "Удаленная команда". Вот почему приходится преодолевать все эти препятствия :(

Краткая версия

Если вы выполните все эти шаги правильно, все должно работать нормально:

  • создать ~/.titleскрипт на удаленной машине
  • подготовьте сеанс с удаленной командой, которая запускает Bash, который выполнит~/.title
  • указать PuTTY загружать подготовленную сессию при запуске, указав пользователя и пароль

Совет профессионала

Вместо того чтобы указывать пароли открытым текстом в командной строке (и, возможно, в скриптах), вам следует научиться использовать ключи SSH и запускать «Pageant» (агент аутентификации PuTTY) в трее Windows.

решение2

У меня сейчас нет SSH, чтобы проверить, ноhttp://www.derkeiler.com/Newsgroups/comp.security.ssh/2012-04/msg00005.html «Если вы просто хотите, чтобы окно оставалось открытым для вас, поместите sleep 10 в конец вашего скрипта для 10-секундного ожидания. Если вы хотите использовать оболочку, используйте exec /bin/bashв конце. Шай»

еще две ссылки, которые дают некоторую информацию.

PuTTY: запуск удаленной команды после входа в систему и сохранение оболочки запущенной

Как выбрать, что будет отображаться в строке заголовка PuTTY в Linux?

Добавлено пользователем barlop

Следующий код не использует putty, он использует openssh в cygwin Файл a.aможет содержать ls или команды для изменения приглашения. Он локальный.

$ ssh 127.0.0.1 "cat | bash" < a.a

по теме, см. ответ, который я только что разместил -https://unix.stackexchange.com/questions/87405/how-can-i-execute-local-script-on-remote-machine-and-include-arguments/208952#208952

Связанный контент