Skip to content

aws ec2-instance connect ssh fails on Windows #9114

Open
@fabiomoratti

Description

@fabiomoratti

Describe the bug

On Windows, the following command

aws ec2-instance-connect ssh --os-user XXXX --instance-id i-XXXXXXXXX

fails because of the (temporary) key file permissions.

Regression Issue

  • Select this option if this issue appears to be a regression.

Expected Behavior

Connect to the remote instance.

Current Behavior

The complete error (with the user and instance id anonymized) is:

Bad permissions. Try removing permissions for user: \\OWNER RIGHTS (S-1-3-4) on file C:/Users/XXXX/AppData/Local/Temp/tmp3cja4v_s/private-key.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions for 'C:\\Users\\XXXX\\AppData\\Local\\Temp\\tmp3cja4v_s\\private-key' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "C:\\Users\\XXXX\\AppData\\Local\\Temp\\tmp3cja4v_s\\private-key": bad permissions

Note that, after the command fails, the key file (private-key) and its folder (C:\Users\XXXX\AppData\Local\Temp\tmp3cja4v_s) are missing, I presume they are created "on the fly" by the command and then removed, so there is no (easy) way to examine the file and its permission.

Reproduction Steps

  • Create a VPC, with public and private subnets
  • Create a EC2 Instance Connect Endpoint
  • Create EC2 instance on the private subnet.
  • Get the EC2 instance ID
  • Issue the following command:
aws ec2-instance-connect ssh --os-user XXXX --instance-id i-XXXXXXXXX

Possible Solution

I suspect that the temporary private key created for the connection does not have the correct permissions.
The solution is to downgrade to a previous version of the CLI that does not present the regression.

Additional Information/Context

This appears to be a regression, version up to 2.17.0 work as expected, while versions 2.17.65, 2.18.0, 2.20.0 and 2.22.0 fail with the above error.
I did not check all the minor 2.17 versions, but apparently the regression appeared between 2.17.0 and 2.17.65.

CLI version used

aws-cli/2.17.65 Python/3.12.6 Windows/11 exe/AMD64

Environment details (OS name and version, etc.)

Windows 11 Pro, version 23H2 - OS Build 22631.4460

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugThis issue is a bug.ec2-instance-connectp2This is a standard priority issuepotential-regressionMarking this issue as a potential regression to be checked by team member

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions