无法使用 ssh 从 Windows 10 CMD 连接到 EC2 Linux 实例

Doc*_*ard 5 ssh acl amazon-ec2 amazon-web-services ec2-ami

我有一个正在运行的EC2实例Linux OS( Amazon Linux AMI release 2018.03)。

鉴于在命令提示符下Windows 10SSH可用的客户端,我试图在实例设置期间使用作为密钥对提供的私钥(文件)SSH进入我的实例。EC2SSH.pemAWSEC2

我正在使用的命令cmd是:

ssh -i private_key.pem ec2-user@3.133.96.240
Run Code Online (Sandbox Code Playgroud)

这里private_key.pem是提供的私钥文件的名称AWS

但我不断收到错误消息:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions for 'private_key.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "private_key.pem": bad permissions
ec2-user@3.133.96.240: Permission denied (publickey).
Run Code Online (Sandbox Code Playgroud)

我想澄清一些事情:

  1. StackOverflow 上也有类似的问题。这些问题实际上涉及尝试EC2从正在运行的主机MacOS/ Linux(任何UNIX基于操作系统)连接到实例。就我而言,我尝试Windows使用命令提示符从10 台主机进行连接。

  2. 在回答 (1) 中讨论的其他问题时,人们建议尝试将私钥 file( .pem) 文件的文件权限更改为 read-only( chmod 444 file.pem)。作为回应,我尝试.pem从我的Windows. 这没有帮助。我不断收到同样的错误。

  3. 我能够从我的 Windows 10 cmd 连接到其他远程 Linux 主机,这表明我的 Windows 10 SSH 客户端可能没有问题。

  4. 我知道通过使用Putty而不是可以使这种连接更容易CMD,但这不是这个问题的内容。只是假设由于一些限制我无法使用Putty

任何帮助,将不胜感激。

Adi*_*bak 5

Windows 10中,找到有问题的.pem文件并右键单击它。

属性-->安全-->高级

  1. 确保您的用户是该文件的所有者
  2. 专门为您的用户授予读取和执行
    权限,同时删除其他用户或组对文件的所有其他权限。

在此输入图像描述


Yas*_*sen 0

你是对的 - 这是因为 Windows 权限模型与 Linux 不同。

查看更多信息:了解 Linux 文件权限 - Linux.com

有很多解决问题的技巧。我建议从这个存储库应用这个脚本:openssh-portable

根据源代码

.Synopsis 设置安全文件 ACL。1. 删除除管理员组、系统和当前用户之外的所有用户 acl 2. 是否获取所有者 .输出 N/A .输入 FilePath - 文件路径 takeowner - 如果要获取所有权