本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
疑難排解 AWS Transfer Family
使用下列資訊來協助您診斷和修正使用 時可能遇到的常見問題 AWS Transfer Family。
如需 Transfer Family IAM中 的問題,請參閱 對 AWS Transfer Family 身分和存取權進行故障診斷。
主題
對服務受管使用者進行故障診斷
本節說明下列問題的可能解決方案。
Amazon EFS服務受管使用者疑難排解
Description
您執行 sftp
命令,但提示不會出現,而是看到下列訊息:
Couldn't canonicalize: Permission denied Need cwd
原因
您 AWS Identity and Access Management (IAM) 使用者的角色沒有存取 Amazon Elastic File System (Amazon ) 的許可EFS。
解決方案
增加使用者角色的政策許可。您可以新增受 AWS 管政策,例如 AmazonElasticFileSystemClientFullAccess
。
對公有金鑰內文太長進行故障診斷
Description
當您嘗試建立服務受管使用者時,您會收到下列錯誤:
Failed to create user (1 validation error detected: 'sshPublicKeyBody' failed to satisfy constraint: Member must have length less than or equal to 2048)
原因
您可能正在輸入公有PGP金鑰主體的金鑰, AWS Transfer Family 且不支援服務受管使用者的PGP金鑰。
解決方案
如果PGP金鑰是以 RSA為基礎,您可以將其轉換為 PEM 格式。例如,Ubuntu 在此提供轉換工具:https://manpages.ubuntu.com/manpages/xenial/man1/openpgp2ssh.1.html
新增SSH公有金鑰故障診斷失敗
Description
當您嘗試為受服務管理的使用者新增公有金鑰時,您會收到下列錯誤:
Failed to add SSH public key (Unsupported or invalid SSH public key format)
原因
您可能嘗試匯入 SSH2格式化公有金鑰, AWS Transfer Family 且不支援服務受管使用者的 SSH2格式化公有金鑰。
解決方案
您需要將金鑰轉換為 OpenSSH 格式。此程序會在 中說明將SSH2公有金鑰轉換為PEM格式。
對 Amazon API Gateway 問題進行故障診斷
本節說明下列API閘道問題的可能解決方案。
身分驗證失敗太多
Description
當您嘗試使用 Secure Shell (SSH) 檔案傳輸通訊協定 (SFTP) 連線至伺服器時,您會收到下列錯誤:
Received disconnect from 3.15.127.197 port 22:2: Too many authentication failures Authentication failed. Couldn't read packet: Connection reset by peer
原因
您可能為使用者輸入了不正確的密碼。請再次嘗試輸入正確的密碼。
如果密碼正確,問題可能是由於角色 Amazon Resource Name (ARN) 無效所造成。若要確認這是問題,請測試您伺服器的身分提供者。如果您看到類似以下內容的回應,則角色只是ARN預留位置,如所有零的角色 ID 值所示:
{ "Response": "{\"Role\": \"arn:aws:iam::000000000000:role/MyUserS3AccessRole\",\"HomeDirectory\": \"/\"}", "StatusCode": 200, "Message": "", "Url": "https://
api-gateway-ID
.execute-api.us-east-1.amazonaws.com/prod/servers/transfer-server-ID
/users/myuser/config" }
解決方案
將預留位置角色取代ARN為具有存取伺服器許可的實際角色。
更新角色
-
在 https://console.aws.amazon.com/cloudformation
開啟 AWS CloudFormation 主控台。 -
在左側導覽窗格中,選擇 Stacks (堆疊)。
-
在堆疊清單中,選擇您的堆疊,然後選擇參數索引標籤。
-
選擇更新。在更新堆疊頁面上,選擇使用目前範本 ,然後選擇下一個 。
-
UserRoleArn 將 取代為具有足夠許可ARN的角色,以存取 Transfer Family 伺服器。
注意
若要授予必要的許可,您可以將
AmazonAPIGatewayAdministrator
和AmazonS3FullAccess
受管政策新增至您的角色。 -
選擇下一個 ,然後再次選擇下一個。檢閱中
stack
頁面,選取我確認 AWS CloudFormation 可能會建立IAM資源 ,然後選擇更新堆疊 。
連線已關閉
Description
當您嘗試使用 Secure Shell (SSH) 檔案傳輸通訊協定 (SFTP) 連線至伺服器時,您會收到下列錯誤:
Connection closed
原因
此問題的一個可能原因是您的 Amazon CloudWatch 記錄角色與 Transfer Family 沒有信任關係。
解決方案
確定伺服器的記錄角色與 Transfer Family 具有信任關係。如需詳細資訊,請參閱建立信任關係。
對加密 Amazon S3 儲存貯體的政策進行故障診斷
Description
您有一個加密的 Amazon S3 儲存貯體,用來儲存 Transfer Family 伺服器。如果您嘗試將檔案上傳到伺服器,則會收到錯誤 Couldn't close file: Permission denied
。
如果您檢視伺服器日誌,您會看到下列錯誤:
ERROR Message="Access denied" Operation=CLOSE Path=/bucket/user/test.txt BytesIn=13 ERROR Message="Access denied"
原因
您IAM使用者的政策沒有存取加密儲存貯體的許可。
解決方案
您必須在政策中指定其他許可,才能授予所需的 AWS Key Management Service (AWS KMS) 許可。如需詳細資訊,請參閱 Amazon S3 中的資料加密。
對身分驗證問題進行故障診斷
本節說明下列身分驗證問題的可能解決方案。
驗證失敗 —SSH/SFTP
Description
當您嘗試使用 Secure Shell (SSH) 檔案傳輸通訊協定 (SFTP) 連線至伺服器時,您會收到類似下列訊息:
Received disconnect from 3.130.115.105 port 22:2: Too many authentication failures Authentication failed.
注意
如果您使用API閘道並收到此錯誤,請參閱 身分驗證失敗太多。
原因
您尚未為使用者新增RSA金鑰對,因此您必須改用密碼進行身分驗證。
解決方案
當您執行 sftp
命令時,請指定 -o PubkeyAuthentication=no
選項。此選項會強制系統請求您的密碼。例如:
sftp -o PubkeyAuthentication=no
sftp-user
@server-id
.server.transfer.region-id
.amazonaws.com
Managed AD 不相符領域問題
Description
使用者的領域及其群組領域必須相符。它們必須都位於預設領域中,或者它們都必須位於受信任領域中。
原因
如果使用者及其群組不相符,則轉接系列無法驗證使用者。如果您測試使用者的身分提供者,您會收到錯誤。找不到與使用者群組 相關聯的存取權
。
解決方案
參考使用者領域中符合群組領域 (預設或受信任) 的群組。
其他身分驗證問題
Description
您會收到身分驗證錯誤,而且其他疑難排解都無法運作
原因
您可能已指定邏輯目錄的目標,其中包含正斜線或尾斜線 (/)。
解決方案
更新您的邏輯目錄目標,以確保其以斜線開頭,且不包含尾斜線。例如, /
是可接受的,但 DOC-EXAMPLE-BUCKET
/images
和 DOC-EXAMPLE-BUCKET
/images/
是不可接受的。DOC-EXAMPLE-BUCKET
/images/
對受管工作流程問題進行故障診斷
本節說明下列工作流程問題的可能解決方案。
使用 Amazon 對工作流程相關錯誤進行故障診斷 CloudWatch
Description
如果您的工作流程發生問題,您可以使用 Amazon CloudWatch 來調查原因。
原因
可能有幾個原因。使用 Amazon CloudWatch Logs 進行調查。
解決方案
Transfer Family 會向 CloudWatch Logs 發出工作流程執行狀態。下列類型的工作流程錯誤可能會出現在 CloudWatch 日誌中:
-
"type": "StepErrored"
-
"type": "ExecutionErrored"
-
"type": "ExecutionThrottled"
-
"Service failure on starting workflow"
您可以使用不同的篩選條件和模式語法來篩選工作流程的執行日誌。例如,您可以在 CloudWatch 日誌中建立日誌篩選條件,以擷取包含ExecutionErrored訊息的工作流程執行日誌。如需詳細資訊,請參閱 Amazon CloudWatch Logs 使用者指南 中的使用訂閱和篩選條件和模式語法即時處理日誌資料。 https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html
StepErrored
2021-10-29T12:57:26.272-05:00 {"type":"StepErrored","details":{"errorType":"BAD_REQUEST","errorMessage":"Cannot tag Efs file","stepType":"TAG","stepName":"successful_tag_step"}, "workflowId":"w-abcdef01234567890","executionId":"1234abcd-56ef-78gh-90ij-1234klmno567", "transferDetails":{"serverId":"s-1234567890abcdef0","username":"lhr","sessionId":"1234567890abcdef0"}
在此, StepErrored
表示工作流程中的步驟已產生錯誤。在單一工作流程中,您可以設定多個步驟。此錯誤會告訴您錯誤發生的步驟,並提供錯誤訊息。在此特定範例中,該步驟設定為標記檔案;然而,不支援在 Amazon 檔案系統中標記EFS檔案,因此步驟會產生錯誤。
ExecutionErrored
2021-10-29T12:57:26.618-05:00 {"type":"ExecutionErrored","details":{},"workflowId":"w-w-abcdef01234567890", "executionId":"1234abcd-56ef-78gh-90ij-1234klmno567","transferDetails":{"serverId":"s-1234567890abcdef0", "username":"lhr","sessionId":"1234567890abcdef0"}}
當工作流程無法執行任何步驟時,會產生ExecutionErrored
訊息。例如,如果您已在指定的工作流程中設定單一步驟,且如果該步驟無法執行,則整體工作流程會失敗。
Executionthrottled
如果工作流程以比系統可支援的速度更快的速度觸發,則執行會受到限制。此日誌訊息表示您必須降低工作流程的執行速率。如果您無法縮減工作流程執行率,請聯絡 AWS 支援 聯絡 。 AWS
啟動工作流程時發生服務失敗
每當您從伺服器移除工作流程並將其取代為新的工作流程,或更新伺服器組態 (這會影響工作流程的執行角色) 時,您必須等待約 10 分鐘,才能執行新的工作流程。Transfer Family 伺服器快取工作流程詳細資訊,伺服器重新整理其快取需要 10 分鐘。
此外,您必須登出任何作用中SFTP工作階段,然後在 10 分鐘等待期後重新登入,以查看變更。
對工作流程複製錯誤進行故障診斷
Description
如果您正在執行包含複製上傳檔案步驟的工作流程,您可能會遇到下列錯誤:
{ "type": "StepErrored", "details": { "errorType": "BAD_REQUEST", "errorMessage": "Bad Request (Service: Amazon S3; Status Code: 400; Error Code: 400 Bad Request; Request ID:
request-ID
; S3 Extended Request ID:request-ID
Proxy: null)", "stepType": "COPY", "stepName": "copy-step-name
" }, "workflowId": "workflow-ID
", "executionId": "execution-ID
", "transferDetails": { "serverId": "server-ID
", "username": "user-name
", "sessionId": "session-ID
" } }
原因
來源檔案位於與目的地儲存貯體 AWS 區域 不同的 Amazon S3 儲存貯體中。
解決方案
如果您正在執行包含複製步驟的工作流程,請確定來源和目的地儲存貯體位於相同的 中 AWS 區域。
對工作流程解密問題進行故障診斷
Description
您的解密工作流程失敗,日誌訊息類似以下內容:
{ "type": "StepErrored", "details": { "errorType": "BAD_REQUEST", "errorMessage": "File encryption algorithm not supported with FIPS mode enabled.", "stepType": "DECRYPT", "stepName": "
step-name
" }, "workflowId": "workflow-ID
", "executionId": "execution-ID
", "transferDetails": { "serverId": "server-ID
", "username": "user-name
", "sessionId": "session-ID
" } }
原因
您的 Transfer Family 伺服器已啟用 FIPS 模式和相關聯的解密工作流程步驟。在上傳至 Transfer Family 伺服器之前加密檔案時,加密用戶端可能會產生使用非FIPS核准對稱加密演算法的加密檔案。在這種情況下,工作流程無法解密檔案。在下列範例中,GnuPG 2.4.0 版使用 OCB(非FIPS區塊密碼模式) 加密檔案:這會導致工作流程失敗。
解決方案
您必須編輯用來加密檔案的GPG金鑰,然後重新加密。下列程序說明您必須採取的步驟。
編輯您的PGP金鑰
-
識別您必須透過執行編輯的金鑰
gpg ‐‐list-keys
這會傳回金鑰清單。每個金鑰都有類似下列的詳細資訊:
pub ed25519 2022-07-07 [SC] wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY uid [ultimate] Mary Major <marymajor@example.com> sub cv25519 2022-07-07 [E]
-
識別您要編輯的金鑰。在上一個步驟中顯示的範例中,ID 為
wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
。 -
執行
gpg ‐‐edit-key wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
。系統會回應有關 GnuPG 程式和指定金鑰的詳細資訊。
-
在
gpg>
提示中,輸入showpref
。會傳回下列詳細資訊:[ultimate] (1). Mary Major <marymajor@example.com> Cipher: AES256, AES192, AES, 3DES AEAD: OCB Digest: SHA512, SHA384, SHA256, SHA224, SHA1 Compression: ZLIB, BZIP2, ZIP, Uncompressed Features: MDC, AEAD, Keyserver no-modify
請注意,會列出儲存在金鑰上的偏好演算法。
-
我們希望編輯 金鑰以保留除 以外的所有演算法OCB。執行
setpref
命令,指定要保留的所有演算法:gpg> setpref AES256, AES192,AES,3DES,SHA512, SHA384, SHA256, SHA224, SHA1,ZLIB, BZIP2, ZIP, Uncompressed
這會傳回下列詳細資訊:
Set preference list to: Cipher: AES256, AES192, AES, 3DES AEAD: Digest: SHA512, SHA384, SHA256, SHA224, SHA1 Compression: ZLIB, BZIP2, ZIP, Uncompressed Features: MDC, Keyserver no-modify Really update the preferences? (y/N)
-
輸入
y
進行更新,然後在提示確認變更時輸入您的密碼。 -
儲存變更。
gpg> save
在重新執行解密工作流程之前,您必須使用已編輯的金鑰重新加密檔案。
對 Amazon EFS問題進行故障診斷
本節說明下列 Amazon EFS問題的可能解決方案。
對遺失POSIX的設定檔進行故障診斷
Description
如果您為伺服器使用 Amazon EFS儲存體,且使用自訂身分提供者,則必須提供 POSIX 設定檔給 AWS Lambda 函數。
原因
其中一個可能的原因,是我們用來建立 AWS Lambda Amazon API Gateway 方法的範本目前不包含POSIX資訊。
如果您確實提供POSIX資訊,Transfer Family 可能無法正確剖析您用來提供POSIX資訊的格式。
解決方案
請確定您為 PosixProfile
參數提供 JSON元素給 Transfer Family。
例如,如果您使用的是 Python,則可以在剖析 PosixProfile
參數的位置新增以下行:
if PosixProfile: response_data["PosixProfile"] = json.loads(PosixProfile)
或者,在 中 JavaScript,您可以新增以下行,其中
和 uid-value
分別代表使用者 ID (UID) 和群組 ID (GID) 的整數為 0 或更高:gid-value
PosixProfile: {"Uid":
uid-value
, "Gid":gid-value
},
這些程式碼範例會將 PosixProfile
參數作為JSON物件傳送至 Transfer Family,而不是字串。
此外,在 中 AWS Secrets Manager,您必須儲存 PosixProfile
參數,如下所示。
使用 your-gid
和 的實際值取代 GID和 UID。your-uid
{"Uid":
your-uid
, "Gid":your-gid
, "SecondaryGids": []}
使用 Amazon 對邏輯目錄進行故障診斷 EFS
Description
如果使用者的主目錄不存在,而且他們執行ls
命令,系統會回應如下:
sftp> ls remote readdir ("/"): No such file or directory
原因
如果您的 Transfer Family 伺服器使用 Amazon EFS,則必須使用讀取和寫入存取權來建立使用者的主目錄,使用者才能在其邏輯主目錄中工作。使用者無法自行建立此目錄,因為他們在邏輯主目錄mkdir
上缺少 的許可。
解決方案
具有父目錄管理存取權的使用者需要建立使用者的邏輯主目錄。
對身分提供者進行測試的疑難排解
Description
如果您使用主控台或 TestIdentityProvider
API 呼叫來測試身分提供者, Response
欄位會是空的。例如:
{ "Response": "{}", "StatusCode": 200, "Message": "" }
原因
最可能的原因是身分驗證因使用者名稱或密碼不正確而失敗。
解決方案
請確定您使用使用者正確的憑證,並視需要更新使用者名稱或密碼。
為您的SFTP連接器新增受信任主機金鑰的故障診斷
Description
當您建立或編輯SFTP連接器時,且您新增受信任的主機金鑰時,您會收到下列錯誤: Failed to edit connector details (Invalid host key format.)
原因
如果您貼入正確的公有金鑰,問題可能是您已包含金鑰comment
的部分。 目前 AWS Transfer Family 不接受金鑰的註解部分。
解決方案
當您將金鑰貼到文字欄位中時,請刪除金鑰的註解部分。例如,假設您的金鑰看起來類似下列內容:
ssh-rsa AAAA...== marymajor@dev-dsk-marymajor-1d-c1234567.us-east-1.amazon.com
移除==
字元後面的文字,並僅貼到 鍵的 部分,直到 並包含 ==
。
ssh-rsa AAAA...==
對檔案上傳問題進行故障診斷
本節說明下列檔案上傳問題的可能解決方案。
對 Amazon S3 檔案上傳錯誤進行故障診斷
Description
當您嘗試使用 Transfer Family 將檔案上傳至 Amazon S3 儲存體時,會收到下列錯誤訊息:AWS 傳輸不支援隨機存取寫入 S3 物件。
原因
當您將 Amazon S3 用於伺服器的儲存時,Transfer Family 不支援單一傳輸的多個連線。
解決方案
如果您的 Transfer Family 伺服器使用 Amazon S3 作為儲存,請停用用戶端軟體提及使用多個連線進行單次傳輸的任何選項。
對無法讀取的檔案名稱進行故障診斷
Description
您會在部分上傳的檔案中看到檔案名稱損毀。使用者有時會遇到檔案名稱中某些字元的問題FTP和SFTP傳輸,例如謗音、重音字母或某些指令碼,例如中文或阿拉伯文。
原因
雖然 FTP和 SFTP通訊協定可以允許用戶端交涉檔案名稱的字元編碼,但 Amazon S3 和 Amazon EFS則不允許。相反地,它們需要 UTF-8 字元編碼。因此,某些字元的轉譯不正確。
解決方案
若要解決此問題,請檢閱用戶端應用程式是否有檔案名稱字元編碼,並確認其設定為 UTF-8。
對ResourceNotFound
例外狀況進行疑難排解
Description
您會收到找不到資源的錯誤。例如,如果您執行 UpdateServer
,您可能會收到下列錯誤:
An error occurred (ResourceNotFoundException) when calling the UpdateServer operation: Unknown server
原因
接收ResourceNotFoundException
訊息有幾個原因。在大多數情況下,您在API命令中指定的資源不存在。如果您確實指定了現有資源,則最可能的原因是您的預設區域與資源的區域不同。例如,如果您的預設區域是 us-east-1,而 Transfer Family 伺服器位於 us-east-2,則您將收到未知的資源
例外狀況。
如需設定預設區域的詳細資訊,請參閱使用 進行快速組態aws configure
。
解決方案
將區域參數新增至API命令,以明確指定在何處尋找特定資源。
aws transfer -describe-server --server-id
server-id
--region us-east-2
連接器SFTP問題疑難排解
本節說明下列SFTP連接器問題的可能解決方案。
金鑰交涉失敗
Description
當金鑰交換交涉失敗時,您會收到錯誤。例如:
Key exchange negotiation failed due to incompatible host key algorithms. Client offered: [ecdsa-sha2-nistp256, ecdsa-sha2-nistp384, ecdsa-sha2-nistp521, rsa-sha2-512, rsa-sha2-256] Server offered: [ssh-rsa]
原因
此錯誤是因為伺服器支援的主機金鑰演算法與連接器支援的主機金鑰演算法之間沒有重疊。
解決方案
確保遠端伺服器支援錯誤訊息中列出的至少一個用戶端主機金鑰演算法。如需支援的演算法清單,請參閱 SFTP 連接器演算法。
其他SFTP連接器問題
Description
您在執行 後收到錯誤StartFileTransfer
,但不知道問題的原因,而且只有連接器 ID 會在API呼叫後傳回。
原因
此錯誤可能有幾個原因。若要疑難排解,建議您測試連接器並搜尋 CloudWatch 日誌。
解決方案
-
測試您的連接器 :請參閱 測試SFTP連接器。如果測試失敗,系統會根據測試失敗的原因提供錯誤訊息。本節說明如何從主控台或使用 測試連接器 TestConnection API 命令。
-
檢視連接器的 CloudWatch 日誌:請參閱 SFTP 連接器的日誌項目範例。本主題提供SFTP連接器日誌項目的範例,以及可協助您尋找適當日誌的命名慣例。
針對 AS2 問題進行故障診斷
此處說明了啟用適用性聲明 2 (AS2) 的伺服器的錯誤訊息和疑難排解提示:AS2 錯誤代碼。