2014-10-29 110 views
1

我一直在想这个。我希望有人能帮帮忙。我已经从Unix服务器向SCP文件写入批处理脚本,并将它们存储在Windows服务器中。我有一个密钥建立。但服务器仍然要求我输入“密码”。以下是我的脚本,我希望有人能看到我的选择有什么问题吗?关键的公共和私人部门已经确定。我能用钥匙登录腻子。然而,试图使用该脚本,它仍然要求我输入密码。这就像服务器没有看到指纹。在WinSCP中使用私钥SCP脚本

winscp.com /command "option batch abort" "option confirm off" 
"open scp://[email protected]/ -hostkey=""ssh-rsa fingerprint""" 
"get /var/log/CPbackup/backups/R77 backup file* D:\fwlogbackups\*" 

回答

1

您还没有指定的open命令私钥。为此,请使用-privatekey= switch

您可能对-hostkey=开关感到困惑。这用于验证服务器的公钥
请参阅Verifying the host key

如果您在-hostkey=中指定了帐户的公钥指纹,则需要将其更新到服务器的公钥指纹。
Where do I get SSH host key fingerprint for use with scripting or .NET assembly?


的Ntb,你缺少周围的路径与报价在get命令空间。
它应该是这样的:

"get ""/var/log/CPbackup/backups/R77 backup file*"" D:\fwlogbackups\*" 

完整的命令行应该是这样的:

winscp.com /command^
    "open scp://[email protected]/ -privatekey=""path\mykey.ppk"" -hostkey=""ssh-rsa fingerprint"""^
    "get ""/var/log/CPbackup/backups/R77 backup file*"" D:\fwlogbackups\*"^
    "exit" 

(不再被最近版本的WinSCP所需要的option命令)。

+0

谢谢你的更正。我确实感到困惑。我已经做出了改变,现在另一个问题仍然存在。它仍然要求我输入密码?它仍然没有看到密钥后-privatekey =“”ssh-rsa – 2014-10-30 18:32:19

+0

@StanStewart必须将'-privatekey'设置为指向私钥文件的路径,而不是公钥指纹。我已将完整的命令行示例添加到我的答案中。 – 2014-10-30 20:09:55

+0

谢谢。我已经对脚本进行了建议的更改。但它仍然要求我输入密码。 ugh – 2014-10-30 21:59:37