在 Start-Process 中添加一个命令,为 Plink 提供 "y" 输入

Prepend a command in Start-Process to provide "y" input to Plink

我看到了一个缓存服务器主机密钥的解决方案,方法是在 运行 其他 Plink 任务之前的脚本顶部添加命令。

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

错误信息:

The term 'echoy| C:\ProgramFiles\PuTTY\plink.exe' is not recognized as the name of a cmdlet,...

因此删除了管道符号之前的空格,因此无法识别该命令。

我的另一个尝试是使用 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 前添加内容?

& "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

不要盲目地对 Plink 主机密钥验证提示回答“y”。您失去了针对 man-in-the-middle attacks.

的保护

您应该使用 -hostkey switch 和您的主机密钥指纹。

pscp 类似: