教學指南

如何在 Windows 上連線 SFTP 伺服器(密碼或金鑰檔)

廠商、銀行或主機商寄來了主機、使用者名稱,以及密碼或金鑰檔。本文說明每一項資訊的意思、如何從 Windows 連線(用應用程式或內建的 sftp 指令),以及常見錯誤訊息代表什麼。

· 7 分鐘閱讀 · Vlad Fedoniuk

有人寄了 SFTP 存取資訊給你。可能是廠商要你把檔案放到他們的伺服器、銀行需要你每天上傳,或是主機商開了網站的存取權給你。訊息裡有主機名稱、使用者名稱,以及密碼或附加的金鑰檔,卻沒說在 Windows 上要怎麼用。

這篇指南會說明每一項資訊的意思、兩種連線方式(用應用程式,或用 Windows 本來就有的 sftp 指令),以及常見錯誤訊息想告訴你什麼。

這些資訊代表什麼

你收到的代表什麼
主機,例如 sftp.example.com伺服器的位址。有時候是 IP 位址而不是名稱。
連接埠除非對方另外說明,否則是 22。有些主機用別的連接埠,例如 2222,請完全照對方給的使用。
使用者名稱你在那台伺服器上的帳號。除非對方這麼說,否則不是你的電子郵件地址。
密碼用密碼登入時使用。有些伺服器要求改用金鑰,或金鑰和密碼都要。
金鑰檔:.ppk、.pem、id_rsa 或 id_ed25519你的私密金鑰,用於金鑰登入。它可能有自己的通關密語。
像 SHA256:... 這樣的指紋伺服器的主機金鑰指紋,讓你在第一次連線時確認連到的是正確的伺服器。
像 /incoming 這樣的資料夾你可以上傳的地方。在許多廠商的伺服器上,這是你唯一能寫入的位置。
像 sftp://user@host:2222/incoming 這樣的連結把上面大部分資訊寫成一行。許多應用程式可以直接使用。

郵件裡常常沒提到的一點:許多廠商只接受來自已知位址的連線。如果對方問過你的 IP 位址,請在嘗試連線前,先把辦公室的公開 IP 告訴他們。

用應用程式連線

圖形化用戶端是看到伺服器內容、拖曳檔案進出最快的方式。在 FTPie 中:

  1. 選擇新增儲存空間,再選 SFTP。
  2. 輸入主機、連接埠和使用者名稱。如果收到的是 sftp:// 連結,把整個連結貼到主機欄位,FTPie 會從中填好連接埠、使用者名稱、密碼和資料夾。如果開啟了設定 > Windows 整合 > 在 FTPie 中開啟 ftp:// 和 sftp:// 連結,點一下連結,這個表單就會以填好、並已測試連線的狀態開啟。
  3. 在身分驗證方法中選擇密碼身分驗證或金鑰身分驗證;如果伺服器同時要求金鑰和密碼,就選兩者皆需。
  4. 使用金鑰時,按一下私鑰旁邊的選擇檔案,選取你的金鑰檔。如果有通關密語,請一併輸入。
  5. 視需要設定初始目錄,例如 /incoming,然後按測試連線。
  6. 第一次連線時,FTPie 會顯示伺服器的伺服器金鑰資訊。把指紋和對方給你的比對一下,再按接受。
FTPie 的 SFTP 連線設定:主機、連接埠、使用者名稱,以及密碼或 SSH 金鑰驗證
填好主機、連接埠和使用者名稱,再指定密碼、金鑰檔,或兩者都用。

個人使用時,SFTP 包含在 FTPie 的免費方案中,最多可用三台 FTP、FTPS 或 SFTP 伺服器。工作用途則可以免費試用 FTPie Pro。

金鑰檔:.ppk、.pem 還是 OpenSSH?

  • .ppk 是 PuTTY 的格式,由 PuTTYgen 產生,有版本 2 和 3 兩種。
  • .pem 是 PEM 金鑰,例如 AWS 為 EC2 伺服器提供的金鑰。
  • 沒有副檔名的 id_rsa 或 id_ed25519,是用 ssh-keygen 產生的 OpenSSH 金鑰。
  • 結尾是 .pub 的檔案是公開的那一半。它應該放在伺服器上,你永遠不會把它載入用戶端。

大多數教學一開始都要你先用 PuTTYgen 轉換格式。FTPie 可以直接讀取這三種格式,不論有沒有通關密語,所以這一步可以省略。讀不了檔案時,它會告訴你原因:通關密語缺少或錯誤、檔案不是私密金鑰,或是你選到了 .pub 檔。

選擇金鑰身分驗證的 FTPie SFTP 表單:主機 sftp.example.com、使用者 exports、私密金鑰 id_ed25519,以及選填的通關密語
用 ssh-keygen 產生、原封不動的 OpenSSH 金鑰進行金鑰身分驗證。.ppk 或 .pem 檔也是放在同一個欄位。

只有一種情況仍然需要轉換:Windows 內建的 sftp 指令讀不了 .ppk 檔。請在 PuTTYgen 中開啟金鑰,使用 Conversions > Export OpenSSH key。反過來,在 PuTTYgen 中先 Load 再 Save private key,就能把 .pem 轉成需要 .ppk 的工具可以用的格式。

用 Windows 內建的 sftp 指令連線

Windows 10 和 11 內建 OpenSSH 用戶端。在 PowerShell 或命令提示字元中執行:

sftp -P 22 exports@sftp.example.com

連接埠要用大寫的 -P 指定;小寫的 -p 在 sftp 裡是別的意思。第一次連線時,sftp 會顯示伺服器的指紋並詢問 Are you sure you want to continue connecting (yes/no/[fingerprint])? 把它和對方給你的指紋比對後,輸入 yes,再輸入密碼。改用金鑰檔時:

sftp -i C:\Users\you\.ssh\id_ed25519 exports@sftp.example.com

登入之後,ls 列出檔案,cd 切換資料夾,put 上傳,get 下載,bye 結束。其他指令請看 SFTP 指令參考;想把每天的上傳變成排程工作,請看自動化 FTP 與 SFTP 傳輸。

連不上的時候

  • "Permission denied (publickey)":伺服器只接受金鑰,而你提供的金鑰不在伺服器上。請確認你載入的是私密金鑰而不是 .pub,以及伺服器管理者已經加入你的公開金鑰。
  • "Permission denied (password)",或應用程式中的驗證錯誤:使用者名稱或密碼錯誤。大多數伺服器的使用者名稱會區分大小寫。
  • "Connection timed out":完全沒有回應。通常是防火牆、連接埠錯誤,或伺服器只允許白名單中的 IP 位址。
  • "Connection refused":主機有回應,但該連接埠上沒有服務在監聽。請檢查連接埠號碼。
  • "Host key verification failed",或主機金鑰已變更的警告:伺服器的金鑰和你電腦上儲存的不再相符。可能只是伺服器重建了,也可能是更糟的情況,所以在接受新金鑰前,請先向伺服器管理者確認。如果用的是 Windows 的 sftp,執行 ssh-keygen -R sftp.example.com 就能刪除舊紀錄。
  • 上傳時出現 "Permission denied":你已經連上,但沒有權限寫入那裡。廠商的伺服器常常只允許上傳到一個資料夾,例如 /incoming。
  • FileZilla 的 "Could not connect to server" 涵蓋了上面大部分的情況;它的訊息記錄會告訴你是哪一種。

在寫信給廠商之前,三項免費檢查可以幫你縮小範圍:SFTP 連線測試工具(伺服器到底有沒有從網際網路回應?)、SFTP 驗證方式檢查工具(它要的是密碼、金鑰,還是兩者都要?),以及 SFTP 主機金鑰指紋(它提供的是哪些金鑰?)。只接受白名單位址的伺服器,也會拒絕這些檢查。

開始你的 30 天免費試用

下載 FTPie,開始 30 天免費試用。享受 FTP 與雲端的無縫整合,試用結束後仍可繼續使用免費版。

下載免費試用版
通過 CASA 驗證,並經 VirusTotal 掃描
30 天試用 · 含免費版
Windows 10 & 11
Vlad Fedoniuk

Vlad Fedoniuk

我是 FTPie 的創辦人兼開發者,致力於打造讓數位生活更簡單、更順手的軟體。歡迎造訪我的個人網站 fedoni.uk ,或在這裡與我聯絡: X (formerly Twitter) , LinkedIn ,或寄電子郵件到 vlad@ftpie.com