我创建了一个启用了 AWS Transfer Family SFTP 的服务器。然后,我创建了一个服务器用户,并将一个公有密钥添加到该用户。但当该用户使用 WinSCP 连接到服务器时,他们会收到错误消息“无法初始化 SFTP 协议。主机是否在运行 SFTP 服务器? 如何解决此问题?
注意:不同 SFTP 客户端收到的错误消息各异。例如,如果您使用的是 Cyberduck,那么错误消息为“EOF while reading packet.Please contact your web hosting service provider for assistance.” 如果您使用的是 OpenSSH,那么错误消息为“Exit status 1 (Connection closed).”
解决方法
未正确配置 AWS Transfer Family 服务的日志记录角色时,通常会出现此错误。要解决此错误,请确认 AWS Transfer Family 服务有权担任与您的服务器关联的日志记录角色。验证日志记录角色的信任策略是否允许委托人 "Service": "transfer.amazonaws.com" 的 "Action": "sts:AssumeRole" 角色,与以下示例语句类似:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": "transfer.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}