Я полагаю, вы пытались сделать что-то подобное, как в этом ответе. Но дело в том, что примеры команд, предоставляемых там, должны выполняться из файла на сервере.
Они не могут быть переданы как команда (и) для выполнения с помощью ключа -m. Этот параметр PuTTY должен имитировать поведение SSH-клиента командной строки Linux:
ssh user@foo command
Таким образом, ssh регистрирует 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
Да, это печально, но для сохраненной сессии нет эквивалента в командной строке поля "Удаленная команда". Вот почему нужно преодолеть все эти препятствия :(
TL; версия DR
Предполагая, что вы делаете все эти шаги правильно, все должно работать нормально:
- создать скрипт
~/.title
на удаленной машине
- подготовить сеанс с удаленной командой, которая запускает Bash, которая выполнит
~/.title
- скажите PuTTY для загрузки подготовленной сессии при запуске, указав имя пользователя и пароль
Pro tip
Вместо того, чтобы указывать пароли в виде открытого текста в командной строке (и, возможно, в сценариях), вы должны научиться использовать ключи SSH и запускать «Pageant» (агент проверки подлинности PuTTY) в области уведомлений Windows.