2014-10-29 105 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