本文說明 Azure Blob 儲存體 中 SFTP 的限制與已知問題,讓您能排查檔案傳輸問題,並驗證用戶端與工作流程的相容性。
重要
由於您必須啟用階層式命名空間才能使用 SFTP,因此 Azure Data Lake Storage 已知問題中的問題也適用於您的帳號。
不支援的用戶端
下列用戶端已知與 Azure Blob 儲存體的 SFTP 不相容。 如需詳細資訊,請參閱支援演算法
- 坎普
- 帕拉米科 1.16.0
- SSH.NET 2016.1.0 或更早版本
- Renci SSH.NET 2014.6.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 是唯一支援的子系統。 金鑰交換後的 shell 請求失敗。 |
| 多重通訊協定寫入 | 不允許其他通訊協定 (NFS、Blob REST、Data Lake Storage REST) 對使用 SFTP 所建立的 Blob 進行隨機寫入或附加 (PutBlock、PutBlockList、GetBlockList、AppendBlock、AppendFile)。 允許完整覆寫。 |
| 重新命名作業 | 目標檔案名已經存在的重新命名作業是通訊協定違規。 嘗試執行這類作業會傳回錯誤。 如需詳細資訊,請參閱移除和重新命名檔案。 |
| 跨容器作業 | 不支援在容器之間遍歷或從相同的連線中對多個容器執行作業。 |
| 還原 | 你無法使用 SFTP 還原已軟刪除的 Blob。 使用 Undelete REST API。 |
存取 ACL 與預設 ACL
目前,SFTP 不支援 預設 ACL 或額外的 存取 ACL (即除了 POSIX
user::、group::和other::條目之外的 ACL 條目,如命名的使用者或命名的群組)。如果存取路徑中的任何目錄(包括使用者的家目錄)已設定預設 ACL 或額外的存取 ACL,即使連線的使用者具有必要權限,SFTP 作業仍會因顯示
Permission denied而失敗。
解決方法: 移除 SFTP 存取路徑中所有目錄(包括使用者的家目錄)中的預設 ACL 及額外的存取 ACL,使僅剩 POSIX user::、 group::及 other:: 條目。
欲了解更多關於 ACL 的細節及編輯方式,請參閱存取控制清單(ACL)。
網路
要用 SFTP 存取儲存帳號,你的網路必須允許 22 埠的流量。
儲存帳號不支援靜態 IP 位址。 這個限制並不只限於 SFTP。
閒置或非啟用連線會在兩分鐘後超時。 OpenSSH 停止回應,然後斷線。 某些用戶端會自動重新連線。
SFTP 的其他限制
如需效能問題和考量,請參閱 Azure Blob 儲存體中的 SSH 檔案傳輸通訊協定 (SFTP) 效能考量。
預設情況下,使用 SFTP 上傳的 blob 的 Content-MD5 屬性為空。 要將此屬性填入 MD5 雜湊值,您的客戶端必須先計算雜湊值並在上傳 blob 前設定 Content-MD5 屬性。
透過 SFTP 端點的最大檔案上傳大小為 500 GB。
客戶自主管理的計畫性容錯移轉支援標準一般用途 v2 帳戶,且對進階區塊 Blob 帳戶則以預覽版形式提供支援。 如需詳細資訊,請參閱 Azure 儲存體災害復原規劃與容錯移轉。
要更改儲存帳號的冗餘或複製設定,必須停用 SFTP。 轉換完成後你可以重新啟用 SFTP。
你無法透過 SFTP 端點存取
$blobchangefeed、$root、$web和$logs等特殊容器。不支援 FTPS 和 FTP。
SFTP 不使用 TLS 或 SSL。
僅支援 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錯誤,請檢查:使用者對容器擁有適當的權限。
連接字串 指定了沒有 home 目錄的本地使用者容器名稱。
連接字串會指定主目錄不存在之本機使用者的容器名稱。
當連線時,若要解決
Received disconnect from XX.XXX.XX.XXX port 22:11:的問題,請檢查以下事項:公用網路存取為
Enabled from all networks或Enabled from selected virtual networks and IP addresses。防火牆允許用戶端 IP 位址。