Проблема. Всякий раз, когда пакетный файл Windows (содержащий команду для выполнения PSFTP
) запускается с помощью Control-M (службы запущены как LocalServiceAccount), ключи не кэшируются и каждый раз предлагается сохранить ключ.
Объяснение: мы выполняем передачу файлов с помощью psftp.exe
(Putty). Когда я запускаю пакетный файл, используя свою учетную запись, я могу снимать отпечатки и видеть, как обновляются ключи в реестре (под HKEY_CURRENT_USER\SOFTWARE\SimonTatham\PuTTY\SshHostKeys
)
Попытка № 1. Создал задачу в TaskScheduler для запуска той же команды (через пакетный файл) с пользователем, что и LocalServiceAccount, и выполнения снятия отпечатков пальцев, добавив ECHO "Y" |
перед командой psftp, чтобы она не t запрашивать подтверждение. Это работает, но годится только для целей тестирования, так как я не думаю, что это хорошая практика, когда мы переходим к производству.
Усилие 2. Удалил все ключи и вручную добавил их в реестр. Это все еще не работает для LocalServiceAccount, это работает только для моей учетной записи. Отпечатки пальцев не выполняются для LocalServiceAccount.
Команда PsfTP:
whoami
"C:\Program Files (x86)\PuTTY\psftp" userAccount@HostIPAddreess -i E:\keys\transfer.ppk
(добавлено whoami только для подтверждения правильности пользователя.)
Однако не имеет значения, запускается ли пакетный файл через службы Control-M (запущенные как LocalServiceAccount) или мы запускаем его через планировщик заданий. В обоих случаях ключи не кэшируются.
Аналогичный вопрос: благодаря этому сообщению я получил временное решение для добавления echo "Y"
: Putty не будет кэшировать ключи для доступа к серверу при запуске скрипта в hudson
LocalServiceAccount является частью группы администраторов на сервере, поэтому я не уверен, есть ли какие-либо разрешения для учетной записи, вызывающие проблему.
Любые предложения о том, что еще я должен искать, приветствуются.
echo Y
, это небезопасно! Используйте переключатель-hostkey
, как вы можете видеть в другом ответе на этот вопрос. - person Martin Prikryl   schedule 15.03.2018plink -ssh userAccount@ServerIP -i key.ppk
, а такжеplink -ssh userAccount@ServerIP key.ppk
Я знаю, что делаю что-то не так... Спасибо, @Martin Prilkryl, я проверю ту ссылку, которой вы поделились. - person User M   schedule 16.03.2018HKEY_CURRENT_USER\SOFTWARE\SimonTatham\PuTTY\SshHostKeys
, были теми, которые я добавил для своего идентификатора. ServiceAccount находился в другой папкеHKEYUSERS\s-1-5....\SOFTWARE\SimonTatham\PuTTY\SshHostKeys
. Итак, Усилие №2 было неверным. Добавил строковый ключ и все заработало. Не нужно было перезапускать сервер, так как модификация была сделана с помощью опции «Подключить сетевой реестр» — не знал об этом, поэтому решил поделиться ею - person User M   schedule 16.03.2018