2011-12-06 31 views
1

我在我的开发机器上启用了Windows远程处理,使用FreeSSHd和PuTTY作为SFTP服务器和客户端。我只使用公共身份验证,将私钥加载到PuTTY的选美中。windows的PowerShell的远程处理失败调用PuTTY

我使用Windows Powershell Remoting来使用C#代码(使用Powershell自动化组件&命名空间)调用PuTTY的PSFTP命令行工具(在PATH环境系统变量中具有PuTTY的二进制文件夹)。

如果我打开Windows PowerShell中并执行这个调用: 调用命令-computername 127.0.0.1 -FilePath C:\ TEMP \ SFTP \ invoke.ps1

我得到一个错误:

Fatal: Disconnected: No supported authentication methods available (server sent: publickey)

当检查FreeSSHd的日志时,我只看到:

  • 12-06-2011 14:12:04 IP 127.0.0.1 SSH连接尝试。
  • 12-06-2011 14:12:04 IP 127.0.0.1 SSH断开连接。

回答

1

(解决方法)

这似乎是与远程PowerShell会话(PowerShell的管道)和命令的组合的问题,该会话内被调用。我使用PageAnt从私钥获取解密的签名,但看着日志,似乎PSFTP无法“看到”PageAnt,导致验证失败。

我解决了这个问题(关于安全性并不是非常值得推荐的,但这都在安全/非互联网环境中):我使用PSFTP -i选项来显示私钥位置,使用-pw选项来提供密码。然后通话成功。

希望有更好的办法做到这一点...