分享方式:


Azure Blob 儲存體中 SSH 檔案傳輸通訊協定 (SFTP) 支援的限制和已知問題

本文說明 Azure Blob 儲存體 SFTP 支援的限制和已知問題。

重要

由於您必須啟用帳戶的階層命名空間以使用 SFTP,因此 Azure Data Lake Storage 的已知問題一文中說明的所有已知問題也適用於您的帳戶。

已知不支援的用戶端

下列用戶端已知與 Azure Blob 儲存體的 SFTP 不相容。 如需詳細資訊,請參閱支援的演算法 (部分機器翻譯)。

  • Kemp
  • paramiko 1.16.0
  • SSH.NET 2016.1.0

這份清單並不詳盡,而且可能會隨著時間而變更。

用戶端設定

若要透過 SFTP 用戶端將檔案傳輸至 Azure Blob 儲存體或從 Azure Blob 儲存體傳輸檔案,請參閱下列建議的設定。

  • WinSCP

    • 在 [喜好設定] 對話方塊的 [傳輸] - [耐久性] 下,選取 [停用] 以停用 [啟用傳輸繼續/轉移至暫存檔名] 選項。

警告

啟用此選項可能會導致大型檔案上傳期間失敗或效能下降。

不支援的作業

類別 不支援的作業
隨機寫入 同時包含 READ 和 WRITE 旗標的作業。 例如:SSH.NET 建立 API
連結
  • symlink - 建立符號連結
  • ln - 建立永久連結
  • 不支援讀取連結
  • 容量資訊 df - 檔案系統的使用方式資訊
    擴充 不支援的延伸模組包括但不限於:fsync@openssh.com、limits@openssh.com、lsetstat@openssh.com、statvfs@openssh.com
    SSH 命令 SFTP 是唯一支援的子系統。 金鑰交換完成後的殼層要求將會失敗。
    多重通訊協定寫入 不允許從使用 SFTP 所建立 Blob 上的其他通訊協定 (NFS、Blob REST、Data Lake Storage REST) 隨機寫入和附加 (PutBlockPutBlockListGetBlockListAppendBlockAppendFile)。 允許完整覆寫。
    重新命名作業 目標檔案名已經存在的重新命名作業是通訊協定違規。 嘗試執行這類作業會傳回錯誤。 如需詳細資訊,請參閱移除和重新命名檔案
    跨容器作業 不支援在容器之間遍歷或從相同的連線中對多個容器執行作業。
    還原 沒有任何方法可以還原具有 SFTP 的虛刪除 Blob。 必須使用 Undelete REST API。

    驗證與授權

    • 本機使用者是目前支援 SFTP 端點身分識別管理的唯一形式。

    • SFTP 端點不支援 Microsoft Entra ID。

    若要深入了解,請參閱 SFTP 權限模型Azure Data Lake Storage 中的存取控制模型

    網路

    • 若要使用 SFTP 存取儲存體帳戶,您的網路必須允許連接埠 22 上的流量。

    • 儲存體帳戶不支援靜態 IP 位址。 這不是 SFTP 特定的限制。

    • 閒置或非使用中的連接有 2 分鐘的逾時。 OpenSSH 會表現得像是停止回應,然後中斷連線。 某些用戶端會自動重新連線。

    其他

    • 如需效能問題和考量,請參閱 Azure Blob 儲存體中的 SSH 檔案傳輸通訊協定 (SFTP) 效能考量

    • 繼續和附加作業需要在您的訂用帳戶上啟用 SFTP Resumable Uploads 預覽功能。 如需有關啟用預覽功能的詳細資訊,請參閱在 Azure 訂用帳戶中設定預覽功能 (部分機器翻譯)。

    • 依預設,使用 SFTP 上傳之 Blob 的 Content-MD5 屬性會設定為 null。 因此,如果您希望這些 Blob 的 Content-MD5 屬性包含 MD5 雜湊值,則用您的戶端必須計算該值,然後在上傳 Blob 之前設定 Blob 的 Content-MD5 屬性。

    • 透過 SFTP 端點的檔案上傳大小上限為 500 GB。

    • 支援特定區域中處於預覽層級的客戶管理帳戶容錯移轉。 如需詳細資訊,請參閱 Azure 儲存體災害復原規劃與容錯移轉 (部分機器翻譯)。

    • 若要變更儲存體帳戶的備援/複寫設定,則必須停用 SFTP。 轉換完成後,可能會重新啟用 SFTP。

    • 無法透過 SFTP 端點存取特殊容器,例如 $logs、$blobchangefeed、$root、$web。

    • 不支援符號連結。

    • 不支援非 SFTP 的 SSH 和 SCP 命令。

    • 不支援 FTPS 和 FTP。

    • TLS 和 SSL 與 SFTP 無關。

    • 僅支援 SSH 第 2 版。

    • 請避免使用以點 (.)、正斜線 (/) 或兩者連續或組合做為結尾的 Blob 或目錄名稱。 沒有路徑線段應該以點 (.) 結尾。 如需詳細資訊,請參閱 命名和參考容器、Blob 及中繼資料

    Blob 儲存體功能

    當您啟用 SFTP 支援時,部分 Blob 儲存體功能將受到完整支援,但某些功能可能僅在預覽層級受到支援,或完全不受支援。

    若要了解如何在已啟用 SFTP 支援的帳戶中支援每項 Blob 儲存體功能,請參閱 Azure 儲存體帳戶中的 Blob 儲存體功能支援

    疑難排解

    • 若要解決此 Failed to update SFTP settings for account 'accountname'. Error: The value 'True' isn't allowed for property isSftpEnabled. 錯誤,請確定在儲存體帳戶層級符合下列先決條件:

      • 此帳戶必須是一般用途 v2 或進階區塊 Blob 帳戶。

      • 帳戶必須啟用階層命名空間。

    • 若要解決此 Home Directory not accessible error. 錯誤,請檢查:

      • 已將適當的權限指派給使用者。

      • 針對沒有主目錄的本機使用者,會在連接字串中指定容器名稱。

      • 針對所擁有主目錄不存在的本機使用者,會在連接字串中指定容器名稱。

    • 若要在連線時解決 Received disconnect from XX.XXX.XX.XXX port 22:11:,請檢查:

      • 公用網路存取為 Enabled from all networksEnabled from selected virtual networks and IP addresses

      • 防火牆允許用戶端 IP 位址。

    另請參閱