如何将 "y" 传递给使用 PowerShell Start-Process 启动的 pscp 进程?
How to pass "y" to pscp process started with PowerShell Start-Process?
我想pscp
一些文件从Windows到Linux服务器。以下代码 (PowerShell) 是我正在尝试的。它工作正常,但我需要输入 y,当它试图与远程服务器通信时,导致 Windows.
的主机名未知
$proc = Start-Process powershell.exe -Credential $credential -ArgumentList "Start-Process C:\pscp.exe -Verb RunAs -ArgumentList '-i C:\prikey.ppk D:\temp\* corey@11.22.33.44:/home/corey/' -Wait" -PassThru
$proc.WaitForExit()
它将显示如下内容:
The server's host key is not cached in the registry. You have no
guarantee that the server is the computer you think it is. The
server's ssh key fingerprint is: xxxxxx If you trust this host, enter
"y" to add the key to PuTTY's cache and carry on connecting......
Store key in cache? (y/n)
有什么方法可以在使用 Start-Process
时自动(非交互式)echo "y"
?或者禁用 Windows 的 SSH 主机检查(对我来说更好)?
感谢任何帮助。
不要尝试盲目回答 "y" 到 pscp
主机密钥验证提示。您失去了针对 man-in-the-middle attacks.
的保护
您应该使用 -hostkey
switch 和您的主机密钥指纹。
主机密钥是您应该拥有的关于任何 SSH 服务器的信息的一部分,连同凭据。 – 尽管作为一种妥协,您可能希望实现等效于 OpenSSH accept-new
模式。有关示例,请参阅 WinSCP 文章 Implementing SSH host key cache (known hosts)。 – 如果您使用 "MD5"
而不是 "SHA-256"
,您将获得几乎采用 pscp
.
所需格式的指纹
我想pscp
一些文件从Windows到Linux服务器。以下代码 (PowerShell) 是我正在尝试的。它工作正常,但我需要输入 y,当它试图与远程服务器通信时,导致 Windows.
$proc = Start-Process powershell.exe -Credential $credential -ArgumentList "Start-Process C:\pscp.exe -Verb RunAs -ArgumentList '-i C:\prikey.ppk D:\temp\* corey@11.22.33.44:/home/corey/' -Wait" -PassThru
$proc.WaitForExit()
它将显示如下内容:
The server's host key is not cached in the registry. You have no guarantee that the server is the computer you think it is. The server's ssh key fingerprint is: xxxxxx If you trust this host, enter "y" to add the key to PuTTY's cache and carry on connecting...... Store key in cache? (y/n)
有什么方法可以在使用 Start-Process
时自动(非交互式)echo "y"
?或者禁用 Windows 的 SSH 主机检查(对我来说更好)?
感谢任何帮助。
不要尝试盲目回答 "y" 到 pscp
主机密钥验证提示。您失去了针对 man-in-the-middle attacks.
您应该使用 -hostkey
switch 和您的主机密钥指纹。
主机密钥是您应该拥有的关于任何 SSH 服务器的信息的一部分,连同凭据。 – 尽管作为一种妥协,您可能希望实现等效于 OpenSSH accept-new
模式。有关示例,请参阅 WinSCP 文章 Implementing SSH host key cache (known hosts)。 – 如果您使用 "MD5"
而不是 "SHA-256"
,您将获得几乎采用 pscp
.