AWS Transfer Family SFTP认证失败求助:测试成功但客户端连接失败
问题描述
我创建了一台AWS Transfer服务器,用户信息存储在Secret中,并配置了相应的角色与策略。使用服务器「操作」菜单下的「测试」功能验证用户时,返回200成功:
{ "Response": "{}", "StatusCode": 200, "Message": "", "Url": "https://oxf21gni8k.execute-api.us-east-1.amazonaws.com/prod/servers/s-*******/users/user/config" }
但使用相同用户名、密码和源IP通过实际客户端连接时,出现如下错误:
$ sftp -o PubkeyAuthentication=no user@s-*********.server.transfer.us-east-1.amazonaws.com user@s-********.server.transfer.us-east-1.amazonaws.com's password: Permission denied, please try again.
查看CloudWatch日志,仅显示无明确说明的认证失败:
ERRORS AUTH_FAILURE Method=password User=user Message= SourceIP= x.x.x.x
(源IP已脱敏)请问可能是什么原因导致该问题?
可能的原因及排查方向
- 密码格式或输入问题:AWS Transfer要求Secret中存储的密码必须是MD5或SHA-256哈希后的字符串,测试功能可能仅校验用户存在性,不会验证密码哈希是否有效。另外检查客户端输入密码时是否存在大小写、特殊字符输入错误,或客户端自动转义了特殊字符。
- 源IP匹配规则不严谨:确认Secret中用户配置的
SourceIp字段是否为正确的CIDR格式(比如x.x.x.x/32),测试功能可能仅做基础IP匹配校验,实际连接时会严格校验IP是否在指定范围内。若客户端通过代理连接,实际源IP可能与预期不符。 - IAM角色权限不足:检查Transfer服务器关联的IAM角色是否拥有
secretsmanager:GetSecretValue权限,且资源ARN需精确匹配存储用户信息的Secret。测试功能使用的是控制台权限,而非服务器角色权限,可能出现权限校验结果不一致的情况。 - 服务器认证配置冲突:确认Transfer服务器的身份提供商类型是否正确设置为「Secrets Manager」,若同时启用了其他认证方式,可能存在逻辑冲突。另外检查服务器是否开启了IP白名单限制,且客户端IP未在允许列表内。
- 客户端连接参数问题:确认客户端连接时使用了正确的端口(AWS Transfer默认是22),部分客户端可能默认使用非标准端口导致连接失败。另外检查
PubkeyAuthentication=no参数是否生效,部分客户端可能忽略该参数仍尝试密钥认证。
内容的提问来源于stack exchange,提问作者user19644362
相关产品推荐
相关产品推荐

