无法在 Windows 2008 R2 中使用 WinSCP 命令行提供私人密码

无法在 Windows 2008 R2 中使用 WinSCP 命令行提供私人密码

我正在按照以下示例https://winscp.net/eng/docs/scripting自动将文件从我的电脑传输到 SFTP 服务器。但是每次我尝试提供私钥密码时,验证都会失败。

当使用 WinSCP 图形用户界面时以及当我在命令行中明确输入密码时,我可以使用相同的密码,但是当自动化时则不能。

我的代码如下所示

open sftp://user:password%[email protected]

我已遵循https://winscp.net/eng/docs/session_url对特殊字符进行编码,因此 %21 表示感叹号。有趣的是,页面上的示例没有对感叹号进行编码,例如4pRte!ai%[email protected]

我也尝试过使用password!,但也没有用。

答案1

问题是,它需要一个私钥的密码短语,但 WinSCP 不支持以编程方式提供私钥,如常见问题解答中所述https://winscp.net/eng/docs/faq_passphrase

解决方法是使用 WinSCP 安装提供的 Pageant 代理,或使用以下独立可执行文件:https://winscp.net/eng/download.php。希望这能在未来帮助到其他人。

答案2

这不是“密码”,而是“密码短语”。

根据 WinSCP 常见问题解答我如何才能连接而不必每次都输入私钥密码?

自动化私钥认证
您可以使用以下方式指定密码-passphrase开关open脚本中的命令

例子:

open -passphrase=... -privatekey=... sftp://[email protected]/

相关内容