Windows

如何通過 putty 的 psftp 自動拉取文件?

  • March 8, 2020

我有一個 Windows Server 2003 機器,它psftp用於連接到遠端 linux 機器並每小時下載文件。

圖片1.png

我對這台機器有兩個主要挑戰:

第一的

計劃任務目前設置為在此框中以使用者身份執行,我認為這需要將使用者的密碼儲存在任務計劃程序中。但是,當使用者的密碼更改時,任務無法執行。無論如何,我都希望這項任務始終執行。

  • 我相信第一個問題的解決方案是讓計劃任務執行為SYSTEM. 那是對的嗎?如果是這樣,我該如何設置?只需SYSTEM在“執行方式”框中輸入?我是否需要設置密碼,SYSTEM因為我相信我嘗試不使用密碼並且它說作業沒有執行,因為密碼不正確。也許我做錯了。

第二

Putty 要求將伺服器的遠端密鑰儲存在系統資料庫中以驗證伺服器的真實性。但是,這似乎是基於每個使用者儲存的,因此如果我將腳本切換為以其他使用者身份執行,似乎使用者必須第一次以互動方式執行腳本,以便將密鑰儲存在系統資料庫中。

  • putty 網站上的說明提到應將密鑰添加到以下系統資料庫​​位置:
HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys

但從“HKEY_CURRENT_USER”來看,我認為這不適合SYSTEM使用者。如果我確實將此任務設置為執行為SYSTEM,我如何確保在主機的系統資料庫中儲存了適當的密鑰?我不介意手動添加它(有一個 perl 腳本可以轉換 known_hosts 文件),但是它應該去哪裡呢?

ps:myscript.bat只使用 psftp.exe 從遠端伺服器拉取文件。沒什麼特別的。沒有標誌可以跳過檢查授權主機,並且 putty 的人提到無論如何這將是一個壞主意。

我意識到這個問題已經有一個公認的答案,但我想我會回答 SYSTEM 帳戶的使用者系統資料庫配置單元所在的位置。實際上HKEY_USERS\.DEFAULT,大多數人錯誤地認為它是新創建帳戶的預設使用者配置單元。有關密鑰的歷史和背景的更多資訊,請參見 Raymond Chen 的 MSDN 部落格:

.Default 使用者不是預設使用者

我相信第一個問題的解決方案是讓計劃任務以 SYSTEM 身份執行。那是對的嗎?

通常,如果它確實需要絕對級別的權限,您應該只將其作為 SYSTEM 執行。一個更好的選擇可能是為此任務設置一個服務帳戶。然後,您可能想要禁用帳戶的密碼過期,或設置通知計劃以提醒您更新服務帳戶密碼和任務詳細資訊。

你當然可以暫時登錄到這個服務帳戶,這樣你就可以第一次接受 SSH 密鑰。

引用自:https://serverfault.com/questions/338242