Добавьте команду в Start-Process, чтобы обеспечить ввод "y" для Plink - PullRequest
1 голос
/ 15 октября 2019

Я нашел решение для кэширования ключа хоста сервера, добавив команду чуть ниже в верхней части моего скрипта перед запуском других задач Plink.

& "echo y | C:\Program Files\PuTTY\plink.exe" -ssh -batch -i $PrivateKeyPath $username "exit" 2>&1

Сообщение об ошибке:

Термин «эхо» |C: \ ProgramFiles \ PuTTY \ plink.exe 'не распознается как имя командлета, ...

Таким образом, пробелы перед символом канала удаляются, и поэтому команда не распознается.

Моя другая попытка - использовать Start-Process, но я не знаю, как я могу добавить echo y | к пути plink.exe.

Start-Process -FilePath 'C:\Program Files\PuTTY\plink.exe' -Argumentlist "-ssh -batch -i $PrivateKeyPath $username $command 2>&1"

Есть ли возможностьприготовить что-нибудь к -FilePath?

Ответы [ 2 ]

2 голосов
/ 15 октября 2019

Не отвечайте вслепую «y» на запрос подтверждения ключа хоста Plink. Вы теряете защиту от атак «человек посередине» .

. Вы должны использовать переключатель -hostkey с отпечатком ключа своего хоста.

0 голосов
/ 15 октября 2019

& "echo y | C:\Program Files\PuTTY\plink.exe" делает echo y | частью пути к исполняемому файлу.

Измените это:

& "echo y | C:\Program Files\PuTTY\plink.exe" -ssh -batch -i $PrivateKeyPath $username "exit" 2>&1

на это:

echo 'y' | & 'C:\Program Files\PuTTY\plink.exe' -ssh -batch -i $PrivateKeyPath $username "exit" 2>&1
...