9

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

6 ответов6

14

Используйте командную строку 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

8

Чтобы автоматизировать выполнение команды, используйте Plink (из пакета PuTTY), а не сам PuTTY.

Plink принимает команду в своей командной строке:

plink.exe user@host command

Если вы хотите продолжать использовать PuTTY, вы можете использовать ключ -m для указания командного файла (Plink также поддерживает ключ -m ).

5

Вы можете использовать конфигурации замазки для достижения этой цели.

Загрузите замазку и настройте сеанс.

Введите удаленную команду, которую вы хотите запустить здесь:

Замазка пульта дистанционного управления

Затем, прежде чем нажать « Открыть », вернитесь на вкладку « Сеанс » (вверху) и сохраните свою конфигурацию.

Теперь создайте ярлык для putty.exe , добавив флаг -load , например:

%PATH_TO_PUTTY%\putty.exe -load my_config

Теперь вы можете просто нажать на ярлык, и он загрузит ваш сеанс, выполнив вашу команду.

1

Вы также можете посмотреть на программное обеспечение, такое как mRemoteNG, MOBAxTerm или SecureCRT, которое будет управлять вашими SSH-соединениями для вас, это также связано с сохраненными сессиями PuTTY, чтобы вы могли применить шаблон к сессию.

1

Если вы используете 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 ~"
0

Это последний "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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .