Я сейчас рассматриваю варианты развертывания. Я использую Jenkins на машине Windows для управления развертыванием на нескольких удаленных серверах Windows.
Развертывание включает выполнение пакетного сценария на удаленных серверах Windows, и пока похоже, что psexec помогает. Единственная проблема, с которой я столкнулся, заключается в том, что мне нужно предоставить psexec мой пароль в виде обычного текста.
Кто-нибудь знает эквивалент открытого / закрытого ключа SSH для psexec или какой-либо другой удаленный вход без пароля для Windows, который позволит мне синхронизировать файлы и выполнять пакетные сценарии?
PAExec имеет немного лучшее решение с параметрами -p @ и -p @ d.
Он позволяет вам записать свой пароль в файл, запустить PAExec, и он немедленно прочитает файл, а затем удалит его. Это все еще не так хорошо, как SSH с открытым / закрытым ключом, но вариант ...
Мне не известно о чем-либо действительно аналогичном аутентификации на основе ключей SSH для Windows. Но вот пара идей:
Из Вот, Я обнаружил, что если вы сначала подключаетесь к общему ресурсу ipc $ удаленного хоста, а затем запускаете psexec, этот psexec автоматически запускается в контексте соединения ipc $.
Итак, в вашем командном файле:
net use \\myserver\IPC$ /user:MyID MyPassword
psexec \\myserver c:\whatever.cmd
Это предотвратит отправку вашего имени пользователя / пароля по сети в открытом виде. Однако при этом ваше имя пользователя и пароль остаются видимыми внутри вашего командного файла.
Один из способов обойти это - написать исполняемую программу, единственной функцией которой является запуск "net use \ [аргумент командной строки] \ IPC $ / user: MyID MyPassword". (Лично я бы использовал что-то вроде autoit для записи .exe.) Допустим, мы назовем его «nu.exe». Тогда ваше секретное имя пользователя / пароль, по крайней мере, встроено в "nu.exe" и, следовательно, не в открытом виде. Хотя, вероятно, можно перепроектировать через декомпилировать это, это, по крайней мере, несколько запутано.
Тогда ваш процесс:
nu.exe myserver
psexec \\myserver c:\whatever.cmd
Но тогда вам нужно хранить nu.exe в безопасном месте, потому что любой, у кого есть доступ к нему, может запускать программы на удаленных хостах с любым идентификатором, который вы встроили в nu.exe.
Так что у обоих вариантов есть недостатки, но, возможно, один из них вам подойдет ...