У меня есть небольшая проблема с выполнением putty (из командной строки) с аргументом -m . Пожалуйста, помогите мне с этим, или предложите лучший способ, если вы знаете один :)
Команда (из «Выполнить»):
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 из командной строки с определенным заголовком
Благодарю.
Ответы:
Я полагаю, вы пытались сделать что-то подобное, как в этом ответе . Но дело в том, что примеры команд, представленных там, должны выполняться из файла на сервере.
Они не могут быть переданы как команда (ы) для выполнения с помощью ключа -m. Этот переключатель PuTTY должен имитировать поведение SSH-клиента командной строки Linux:
ssh user@foo command
Таким образом, SSH регистрирует
user
наfoo
сервере, работаетcommand
там и просто выходит. Похоже, с -m PuTTY делает то же самое.Мое предложение
это подготовить скрипт на удаленном сервере и настроить PuTTY другим способом. Прежде всего, вам нужно создать файл с командами, которые вы хотели бы запустить после входа в систему, давайте назовем его
.title
Затем просто введите или скопируйте и вставьте все, что вам нужно, затем нажмите Ctrl + D. А пока давайте просто протестируем установку заголовка:
Вы даже можете попробовать выше прямо в терминале. Если заголовок окна PuTTY не изменяется, скорее всего, в вашем дистрибутиве уже установлена переменная PROMPT_COMMAND по умолчанию . Вы можете подтвердить это, выполнив следующие команды в терминале
Ключ должен сбросить текущее значение
PROMPT_COMMAND
переменной. Тогда последняя команда должна установить заголовок окна вPuTTY test
.Мое решение
для меня работает подготовка сессии в PuTTY с установленным для графического интерфейса «Удаленная команда» :
Просто не забудьте указать название этого сеанса (например, SessionName) и нажмите кнопку «Сохранить» на первой странице настроек PuTTY, рядом со списком «Сохраненные сеансы» :)
Затем вы можете запустить PuTTY и сказать ему, чтобы загрузить эту сессию
Да, это печально, но для сохраненного сеанса нет эквивалента в командной строке поля «Удаленная команда». Вот почему нужно преодолеть все эти препятствия :(
TL; DR версия
Предполагая, что вы делаете все эти шаги правильно, все должно работать нормально:
~/.title
скрипт на удаленной машине~/.title
Pro tip
Вместо того, чтобы указывать пароли в текстовом виде в командной строке (и, возможно, в сценариях), вы должны научиться использовать ключи SSH и запускать «Pageant» (агент проверки подлинности PuTTY) в панели задач Windows.
источник
У меня нет ssh для тестирования прямо сейчас, но http://www.derkeiler.com/Newsgroups/comp.security.ssh/2012-04/msg00005.html "Если вы просто хотите, чтобы окно оставалось открытым для вы тоже посмотрите, поместите sleep 10 в конце вашего скрипта на 10 секунд ожидания. Если вы хотите использовать оболочку, используйте
exec /bin/bash
в конце. Shai "две другие ссылки, которые предлагают некоторое понимание.
PuTTY: Запустите удаленную команду после входа в систему и продолжайте работу оболочки
Как выбрать то, что отображается в строке заголовка PuTTY из Linux?
Добавил барлоп
следующее не использует putty, оно использует openssh в cygwin.
a.a
Файл может содержать ls или команды для изменения приглашения. Это местное.см. ответ, который я только что опубликовал - https://unix.stackexchange.com/questions/87405/how-can-i-execute-local-script-on-remote-machine-and-include-arguments/208952#208952
источник