Для автоматического выполнения команд с помощью PuTTY используйте ключ -m
для передачи текстового файла с командами для запуска, например:
putty.exe -ssh user@host -m commands.txt
Где команда commands.txt
будет содержать
usrun -u root rush
Но это не поможет вам с паролем, так как это ввод команды usrun
, а не сама по себе команда, поэтому -m
здесь бесполезен. Я не знаю usrun
, поэтому я не могу сказать, есть ли у него способ "аутентифицировать" какой-либо другой метод вместо "ввода" пароля. В общем, всякий раз, когда вы пытаетесь автоматизировать ввод пароля, вы делаете что-то неправильно. Это риск для безопасности. Всегда проверяйте, есть ли лучший (= более безопасный) способ.
Другая проблема - дальнейшие команды. Если все команды, которые вы хотите выполнить, должны выполняться в одной и той же среде / оболочке, вы можете поместить их в файл commands.txt
построчно.
command1
command2
Обратите внимание, что не все SSH-серверы поддерживают несколько линий. Большинство делает, хотя. Если нет, вы всегда можете использовать свой сервер / оболочку для выполнения нескольких команд в одной строке, например:
command1 && command2
Но если дальнейшие команды на самом деле являются подкомандами первой команды, как в случае с такими командами, как su
, sh
, bash
, ssh
, ftp
и т.д. (И может быть в случае с usrun
), дальнейшие команды фактически являются входными данными для первые, не автономные команды среды / оболочки верхнего уровня. На самом деле это та же проблема, что и проблема ввода пароля выше.
В отличие от проблемы с паролем, с подкомандами основная команда может иметь другой механизм для их предоставления вместо использования ввода.
Сказав это, вы можете использовать Plink (инструмент подключения командной строки PuTTY ) вместо PuTTY. Это инструмент из пакета PuTTY, который работает как PuTTY, но это консольное, а не графическое приложение. В качестве такового он может использовать перенаправление ввода / вывода. Таким образом, вы можете перенаправить даже пароль или подкоманды основной команды из файла, как если бы вы набрали их на консоли. И в любом случае Plink - это инструмент для автоматизации задач, а не PuTTY.
echo usrun -u root rush>input.txt
echo password>input.txt
echo command_for_usrun>input.txt
plink -ssh user@host < input.txt
В качестве альтернативы используйте KiTTY с -cmd
который делает то, что вы хотите. KiTTY - это приложение с графическим интерфейсом (это клон PuTTY). Его ключ -cmd
основном имитирует типизацию, поэтому у него нет проблем с вводом (пароль и подкоманды) для команд. Но я нашел это довольно ненадежным. Я не очень рекомендую это. Но вы можете найти это достаточно для вашей задачи.