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

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

重要

由於您必須為帳戶啟用階層命名空間才能使用 SFTP,因此 Azure Data Lake 儲存體 Gen2 已知問題一文中所述的所有已知問題也適用於您的帳戶。

已知不支援的用戶端

下列用戶端已知與 Azure Blob 儲存體的 SFTP 不相容。 如需詳細資訊,請參閱支持的演算法。

  • Five9
  • Kemp
  • Mule
  • paramiko 1.16.0
  • SSH.NET 2016.1.0

上述不支援的用戶端清單並不詳盡,而且可能會隨著時間而變更。

用戶端設定

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

  • WinSCP

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

警告

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

不支援的作業

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

    驗證和授權

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

    • SFTP 端點不支援 Microsoft Entra 識別碼。

    若要深入瞭解,請參閱 SFTP 許可權模型,並參閱 Azure Data Lake 儲存體 Gen2 中的存取控制模型。

    網路

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

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

    • 不支援因特網路由。 使用 Microsoft 網路路由。

    • 閑置或非使用中聯機有 2 分鐘的時間。 OpenSSH 似乎停止回應,然後中斷連線。 某些用戶端會自動重新連線。

    其他

    • 如需效能問題和考慮,請參閱 Azure Blob 記憶體中的 SSH 檔傳輸通訊協定 (SFTP) 效能考慮。

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

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

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

    • 若要變更記憶體帳戶的備援/複寫設定或起始帳戶故障轉移,必須停用 SFTP。 轉換完成後,可能會重新啟用 SFTP。

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

    • 不支援符號連結。

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

    • 不支援 FTPS 和 FTP。

    • TLS 和 SSL 與 SFTP 無關。

    • 僅支援 SSH 第 2 版。

    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位址。

      • 網路路由設定為 Microsoft network routing

    另請參閱