Я часто открываю сеанс SSH для запуска одной и той же команды. У меня есть все настройки для входа в систему без ввода пароля (через аутентификацию на основе ключей SSH), поэтому мне было интересно, есть ли способ создать ярлык или командный файл в Windows, который бы загружал PuTTY или аналогичную программу, а затем запускал ее команда (и, вероятно, выход, если результат хороший).
6 ответов
Используйте командную строку PuTTY version plink.exe
чтобы инициировать SSH-соединение с выбранным хостом. Используйте ключ -ssh
для соединения с SSH. С ключом -m
вы можете включить командный файл:
plink.exe -ssh host1 -m C:\path\to\commands.txt
Вы можете скачать plink.exe
здесь.
Последним шагом будет создание ярлыка, включающего plink.exe
с нужными параметрами.
Проверьте документацию Plink для других различных параметров:документация Plink.exe
Чтобы автоматизировать выполнение команды, используйте Plink (из пакета PuTTY), а не сам PuTTY.
Plink принимает команду в своей командной строке:
plink.exe user@host command
Если вы хотите продолжать использовать PuTTY, вы можете использовать ключ -m
для указания командного файла (Plink также поддерживает ключ -m
).
Вы можете использовать конфигурации замазки для достижения этой цели.
Загрузите замазку и настройте сеанс.
Введите удаленную команду, которую вы хотите запустить здесь:
Затем, прежде чем нажать « Открыть », вернитесь на вкладку « Сеанс » (вверху) и сохраните свою конфигурацию.
Теперь создайте ярлык для putty.exe
, добавив флаг -load
, например:
%PATH_TO_PUTTY%\putty.exe -load my_config
Теперь вы можете просто нажать на ярлык, и он загрузит ваш сеанс, выполнив вашу команду.
Вы также можете посмотреть на программное обеспечение, такое как mRemoteNG, MOBAxTerm или SecureCRT, которое будет управлять вашими SSH-соединениями для вас, это также связано с сохраненными сессиями PuTTY, чтобы вы могли применить шаблон к сессию.
Если вы используете Windows 10, вам может быть интересно узнать, что Microsoft по сообщениям имеет бета-версию OpenSSH (клиент и сервер):
[…] Перейдите в «Управление дополнительными функциями», затем + «Добавить функцию». Затем вы можете прокрутить список вниз и найти функции клиента OpenSSH (бета) и сервера OpenSSH (бета) в Windows. Идея запуска другой удаленной службы в Windows может быть пугающей, поэтому мы не будем винить вас, если вы не хотите устанавливать сервер.
После установки вы можете просто запустить свою командную строку и использовать клиент OpenSSH, набрав ssh, а затем команду, например
ssh ubuntu@someIP
.Вот текущее (по состоянию на 28 ноября 2017 г.) руководство по использованию команды
ssh
мы получаем вместе с Windows OpenSSH Client:C:\WINDOWS\system32>ssh usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec] [-D [bind_address:]port] [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11] [-i identity_file] [-J [user@]host[:port]] [-L address] [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port] [-Q query_option] [-R address] [-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]] [user@]hostname [command] C:\WINDOWS\system32>
Если это сработает, вы сможете использовать ssh
как на * Nix:
C:\WINDOWS\system32>ssh user@host "ls -l ~"
Это последний "CMD", который я могу просто сохранить на моем FileServer и создать ярлык на рабочем столе.
::FreeSoftwareServers
::Automated Opening of SSH Tunnel & Execute CMD on Remote Host
::https://superuser.com/questions/1278434/create-a-batch-file-or-shortcut-to-putty-ssh-that-opens-a-session-and-runs-a-c
set puttydir="C:\Program Files\PuTTY"
set exe=plink.exe
::Profile must exist in PuTTY
set remotehost=FileServer
set remotecmd="chmod 777 /mnt/mdadm/torrents -R"
cd %puttydir%
%exe% %remotehost% %remotecmd%
::Test First Manually in CMD Prompt
::Note Remote Host does NOT have access to BashRC Alias's
::start "C:\Program Files\PuTTY\" plink.exe -ssh FileServer touch /tmp/testfile
::start "C:\Program Files\PuTTY\" plink.exe -ssh FileServer ~/script.sh