Запустите пакетный файл, когда Pageant завершит загрузку ключей SSH - PullRequest
0 голосов
/ 24 сентября 2018

Я написал два командных файла - один для запуска Pageant и загрузки моих ключей, а другой для ssh-файлов на удаленный сервер.Индивидуально скрипты работают отлично.Я пытаюсь объединить их в один пакетный файл, но я не могу заставить его работать.

Вот сценарии - на самом деле только одна строка.

Чтобы запустить Pageant изагрузить ключи:

start E:\PuTTY\pageant.exe E:\Keys\priv.ppk

exit

Для использования pscp:

pscp F:\website\foobar\src\* foo@178.128.10.35:/var/www/html

Проблема в том, что первый скрипт запускает запрос пароля.Если я закончу это, а затем запустить следующий скрипт, все работает отлично.Но я не смог объединить эти два в один сценарий таким образом, чтобы вторая команда выполнялась после того, как приглашение первого завершено.Как бы я создал командный файл, который сделал это?

1 Ответ

0 голосов
/ 24 сентября 2018

Вы вряд ли сможете решить эту проблему в командном файле.Pageant это приложение с графическим интерфейсом.Вряд ли он может как-то сообщить обратно пакетному файлу, что он завершил загрузку ключей.

По этой причине Pageant имеет -c switch , что заставляет его запускать указанную программу / пакетный файлпосле загрузки ключей:

Вы можете организовать для Pageant запуск другой программы после того, как она инициализировала себя и загрузила все ключи, указанные в его командной строке.Эта программа (возможно, PuTTY или WinCVS, использующая Plink или что-то еще) сможет использовать ключи, загруженные Pageant.

Это можно сделать, указав параметр -c, а затем командуПримерно так:

C:\PuTTY\pageant.exe d:\main.ppk -c C:\PuTTY\putty.exe

Итак, это должно соответствовать тому, что вы хотите:

start E:\PuTTY\pageant.exe E:\Keys\priv.ppk -c C:\path\your_scp_batch.bat
...