WinSCP,一個用於安全文件傳輸的基本工具,不僅提供了圖形用戶界面。WinSCP命令行功能允許 IT 專業人員和系統管理員直接從控制台管理和自動化文件傳輸,從而增強了工作流程的效率和靈活性。
要了解 WinSCP GUI 的方方面面,請查看本帖的相應帖子,WinSCP GUI:終極指南。
在這個終極指南中發現 WinSCP 提供的每個命令行功能。您將逐步學習如何利用WinSCP命令行來最大程度地提高生產力並簡化文件傳輸流程。
讓我們一起探索使用 WinSCP 進行命令行文件管理的世界吧!
使用 WinSCP 命令行的先決條件
- A Windows XP+ PC – This tutorial will use Windows 10 Enterprise.
- A remote Linux host – This tutorial will use an Ubuntu 18.04.5 LTS machine.
- A user account on the remote SSH host with sudo permissions.
使用 WinSCP 命令行生成會話 URL
雖然 WinSCP GUI 提供了一個方便的登錄窗口來設置連接,但WinSCP命令行需要採用不同的方法。您必須以更直接的方式指定連接屬性,而不是交互式窗口。

為了告訴WinSCP命令行去哪連接,需要使用會話 URL。該 URL 封裝了 GUI 中定義的連接屬性。
A basic session URL follows this structure:
例如,要在 WinSCP 中使用 SFTP 連接到主機 1.1.1.1
,使用者名為adam
,密碼為pw
,會話 URL 將為:
如果您已經設置了一個 WinSCP 站點,您可以輕鬆找到會話 URL。打開 WinSCP 圖形用戶界面,點擊 會話,右鍵單擊您的站點,然後選擇 生成會話 URL/代碼。

會話 URL 對話框提供了各種自定義選項,用於您的連接,每個選項都會影響 WinSCP 與遠程主機的交互作用。
- 初始目錄 – 指定 WinSCP 在連接時打開的遠程目錄。
- SSH 主機密鑰 – 使用現有的 SSH 密鑰進行遠程主機驗證。
- WinSCP 特定 URL – 生成一個獨特的會話 URL,如
WinSCP-sftp://
,專門用於 WinSCP 的理解,避免與默認網絡瀏覽器的衝突。 - 保存擴展 – 通常與 WinSCP 特定的 URL 配對使用,以進一步減少應用程序衝突。
當所有選項都啟用時,會話 URL 格式應該類似於以下形式:

掌握 WinSCP 命令行:生成會話連接代碼
準備好您的會話 URL 後,WinSCP 通過在 生成會話 URL/代碼 窗口的 腳本 標籤中提供代碼示例而更進一步。在這裡,您可以從不同的腳本類型中選擇:
- 腳本文件
- 批處理文件
- 命令行
- PowerShell脚本
选择您喜欢的脚本类型,WinSCP将生成连接到远程主机所需的语法,使用WinSCP命令行。

要在.NET、C#或PowerShell中编码,请切换到下面所示的.NET程序集代码选项卡。

了解WinSCP.exe和WinSCP.com在WinSCP命令行环境中的区别
了解如何生成会话URL对于使用WinSCP命令行工具至关重要。让我们来探讨如何使用这些工具连接到主机,首先要了解winscp.exe和winscp.com之间的差异。
Winscp.exe既可以作为GUI启动器,也可以作为简单任务的命令行实用程序。如果指定了正确的参数,您可以使用它进行基本命令。
将winscp.exe视为WinSCP的GUI功能和命令行界面之间的桥梁。
对于更复杂的任务,特别是在脚本编写方面,您可以使用winscp.com。这个基于控制台的工具非常适合自动化脚本,并支持一系列SSH功能。它提供了真正的、非交互式的WinSCP命令行体验。
无论您选择哪种方式,请先打开一个命令提示符(cmd.exe或PowerShell)并导航到WinSCP安装目录。
准备好命令提示符后,我们继续使用WinSCP进行远程连接。
利用WinSCP.exe:使用会话URL连接远程主机
通过使用会话URL作为参数运行WinSCP命令行的最简单方法之一是运行winscp.exe。例如,要使用sftp
连接到54.179.19.216
主机,使用用户名automate
和密码automate
,然后导航到/tmp目录,使用以下命令:
为了增强安全性,您可以使用私钥通过/privatekey
参数连接到远程主机。虽然这种方法更安全,但设置私钥的复杂性超出了本教程关于WinSCP命令行的范围。
以下是使用用户名automate
和私钥mykey.ppk
通过scp
连接到54.179.19.216
主机的示例。
使用WinSCP.exe快速下载文件而无需站点配置
通过winscp.exe的WinSCP命令行,即使没有预定义的WinSCP站点,您也可以快速传输文件。让我们探索如何从远程主机下载没有站点配置的文件。例如,使用SFTP下载远程主机54.179.19.216中/tmp目录中的所有文件。
1. 開始生成會話 URL。以下是一個連接到遠程主機,使用憑據 automate
並登陸到 /tmp 目錄的示例。
2. 使用會話 URL 執行 winscp.exe 以訪問 WinSCP 轉移設置對話框。本地目錄默認為 ~\Documents,而 WinSCP 將目標設置為遠程目錄中的所有文件(\\*.*
)。
3. 即可開始傳輸。WinSCP 將從遠程 /tmp 目錄下載所有文件到您選擇的本地目錄上 SFTP。

使用 WinSCP.exe 上傳文件而不使用站點
在掌握文件下載後,讓我們轉向使用 WinSCP 命令行 和 winscp.exe 將文件上傳到遠程主機。該過程與下載類似,但這次您還需要使用 /upload
選項,指定要上傳的文件或文件夾。
執行上述命令會彈出 WinSCP 上傳對話框,指示要上傳的文件(*.*
)到遠程主機的 /tmp 目錄。

在上傳後,使用 SSH 客戶端登入遠端主機,並使用像是 pwd
和 ls -lh
的指令來驗證上傳成功,這將顯示目錄內容,確認成功傳輸。

利用 WinSCP.exe 下載檔案並使用站點
雖然會話 URL 對於臨時連接很實用,但有一個預配置的 WinSCP 站點會簡化這個過程。如果您已經使用 WinSCP 一段時間,您可能已經設置了多個站點。
使用 winscp.exe,您可以輕鬆地使用在 GUI 中建立的這些站點來連接到遠端主機,無需記住會話 URL 的詳細信息。
要查找 WinSCP 中保存的站點,請導航至 Session -> Sites -> Site Manager。
例如,讓我們探索使用預先存在的站點使用 WinSCP 命令行 下載文件。
1. 使用配置的 WinSCP 站點連接到遠端主機。下面的示例演示了使用名為 Adamsite
的站點進行連接。
連接後,WinSCP 會顯示狀態通知。

2. 接著,執行 winscp.exe,帶有協議(sftp
)、站點名稱(Adamsite
)和目標目錄(/tmp
)的參數。這種方法會彈出WinSCP 傳輸設置對話框,準備進行文件下載操作。
點擊確定開始從遠端主機的 /tmp 目錄下載所有文件到您本地目錄,使用 SFTP。

要將文件從本地計算機上傳到遠端主機,過程類似。使用
/upload
選項與文件或目錄路徑,如winscp.exe Site3 /upload .\license.txt
。不需要完整的 URL 指定 (sftp://Adamsite/tmp
)。
使用 WinSCP.exe 進行遠端文件編輯流程優化
需要在遠端主機上編輯文本文件嗎?跳過手動下載-編輯-上傳的週期。使用 WinSCP 命令行 提供了一種更有效的方法,使用 /edit
參數。只需指定站點名稱、/edit
和遠端文件路徑。
示例:
執行上述命令將啟動您的默認文本編輯器,允許您根據需要修改遠端文件。這種無縫集成是 WinSCP 命令行 功能的一個關鍵特點。

編輯完成後,只需保存文件。WinSCP 會負責更新遠端主機上的文件,簡化了編輯-上傳過程。
使用 WinSCP.exe 會話記錄優化工作流程
為了全面記錄您的操作,WinSCP 命令行 提供了會話記錄功能。此功能對於跟踪會話期間執行的命令、幫助故障排除和記錄至關重要。
要啟用會話記錄,在連接會話時包括最多三個參數:
/log
– 指定日誌文件的路徑。/loglevel
– 設置日誌的詳細程度,範圍從 Reduced(1
)到 Debug(2
)。/logsize
– 定義日誌文件的大小和輪換方式,格式為<總歸檔日誌數>*<最大日誌文件大小>
。
以下是一個範例,winscp.exe 連接到主機並將活動記錄到 C:\winscp.log
以 Debug 級別。該命令會維護最多五個大小為 10MB 的日誌文件(5*10MB
)。
使用 WinSCP.com 交互命令探索高級功能
雖然 winscp.exe 提供了遠程連接的很好入門,但 winscp.com 提供了更深層次的命令行體驗,提供更深入的互動和控制。
開始以命令行環境打開 winscp.com。您將進入一個類似於SSH的交互式會話,其標誌是 winscp>
提示符。
使用 open
命令連接到遠程計算機,後面跟著所需的站點名稱。
通過 WinSCP 命令行 連接到遠程主機後,如使用 Adamsite
所示,您將發現自己處於類似於 SSH 會話的環境中。在這裡,您可以執行命令並有效地與遠程主機交互。

增強安全性:在 WinSCP 中使用新的密鑰對(主機密鑰)
當連接到會話時,公鑰身份驗證可以增強安全性。要使用它,首先獲取會話的 主機密鑰指紋。在 WinSCP 文件夾中使用以下語法的 ssh-keygen
命令。
此命令生成一個 SSH 密鑰對,用於安全身份驗證。一旦執行,您將收到用於 winscp.com 會話連接的指紋。

要使用 hostkey
參數進行連接,請按以下示例提供生成的指紋。
在使用來自
ssh-keygen
的指紋時,請包含前綴ssh-rsa 2048
。
最大化效率,使用 WinSCP.com:使用 /command
參數
雖然互動式會話對於某些任務很棒,但非互動式命令執行對於腳本和自動化至關重要。winscp.com 通過/command
參數支持此功能,使您能夠在一個步驟中建立會話,執行命令並斷開連接。
例如,使用/command
參數將本地文件傳輸到遠程主機。下面的示例演示了將文件從C:\abc\abc.txt複製到遠程主機13.213.61.127
上的/tmp目錄。
/command
參數接受兩個字符串作為參數:一個用於建立會話,另一個用於實際命令執行。
使用 WinSCP.com 自動化任務:/script
參數
對於更複雜的自動化需求,winscp.com中的/script
參數允許您從腳本中執行一系列命令。在管理遠程主機上的重複任務或複雜操作時,此功能非常寶貴。
要在WinSCP 命令行中使用/script
參數,首先使用您喜歡的文本編輯器在桌面上創建名為upload_file_script.txt的腳本文件。
在遠程計算機的/tmp目錄中準備一個名為a.txt的空白文本文件。
在C:\abc創建一個本地目錄。
請將以下內容輸入到 upload_file_script.txt 中並保存。此腳本從遠端 /tmp 目錄下載 a.txt 文件,然後重新上傳為 new_file.txt。
使用以下命令在 WinSCP 中使用 /script
參數執行此腳本:
使用
/ini=nul
開關防止 WinSCP 在退出時保存任何會話配置。
使用 WinSCP.com 進行金鑰轉換
WinSCP 支持密碼和基於 憑證 或公鑰驗證。為了使用公鑰驗證,需要兼容的私鑰格式。WinSCP 協助轉換金鑰格式以實現兼容性。
例如,使用 WinSCP 命令行 將 PEM 格式私鑰(如 AWS EC2 中的私鑰)轉換為 Putty 友好格式。在 winscp.com 中使用 /keygen
參數便可完成此轉換。
- 應用
/keygen
參數,後接鍵的當前路徑。 - 包括
-o
參數以指定轉換鍵的輸出文件路徑。 - 可選地,使用
-c
參數向轉換的鍵添加注釋。
結論
有了這份對WinSCP命令行的全面指南,以及WinSCP GUI指南,您現在可以充分利用WinSCP的功能。無論是文件傳輸、命令執行、腳本運行還是鍵轉換,WinSCP都是任何IT專業人士的多功能工具。
您打算如何將WinSCP整合到您的工作流程中?分享您的想法和經驗!