简体   繁体   中英

AWS ECS Exec fails on shell access to ECS Fargate task (Unable to start shell: Failed to start pty: fork/exec C:/Program: no such file or directory)

I am attempting to gain shell level access from a windows machine to a Linux ECS Task in an AWS Fargate Cluster via the AWS CLI (v2.1.38) through aws-vault.

The redacted command I am using is

aws-vault exec my-profile -- aws ecs execute-command --cluster my-cluster-name --task my-task-id --interactive --command "/bin/sh"

but this fails with this output

The Session Manager plugin was installed successfully. Use the AWS CLI to start a session.
Starting session with SessionId: ecs-execute-command-0bc2d48dbb164e010
SessionId: ecs-execute-command-0bc2d48dbb164e010 :
----------ERROR-------
Unable to start shell: Failed to start pty: fork/exec C:/Program: no such file or directory

I can see that ECS Exec is enabled on this task because an aws describe shows the following. 在此处输入图像描述

It appears that its recognising the host is a windows machine and attempting to initialise based on a variable that is windows specific.

Is anyone able to suggest what I can do to resolve this.

I was using windows 7, I think without WSL (Windows 10+) or Linux (or Mac) it just doesn't work. There's another suggestion explained here that's not worth the trouble:

Cannot start an AWS ssm session on EC2 Amazon linux instance

For me, I just used a Linux bastion inside AWS and it worked from there.

Ran into the same error. Using --command "bash" worked for me on Windows 10.

Using a windows powershell to run this command worked for me

Ran into a similar issue. Not all docker containers required bash. Try using:

--command "sh"

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM