【问题标题】:Unable to connect to EC2 Linux instance from Windows 10 CMD using ssh无法使用 ssh 从 Windows 10 CMD 连接到 EC2 Linux 实例
【发布时间】:2020-04-11 19:15:34
【问题描述】:

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

鉴于Windows 10 在命令提示符中有SSH 客户端可用,我尝试使用SSH 提供的SSH 私钥(.pem 文件)将SSH 放入我的EC2 实例@ 987654331@在设置EC2 实例期间作为密钥对。

我在cmd 上使用的命令是:

ssh -i private_key.pem ec2-user@3.133.96.240

这里private_key.pemAWS提供的私钥文件名。

但我不断收到错误消息:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         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).

我想澄清一些事情:

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

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

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

  4. 我知道使用Putty 而不是CMD 可以使这种连接变得更容易,但这不是这个问题的意义所在。假设由于某些限制我不能使用Putty

任何帮助将不胜感激。

【问题讨论】:

标签: amazon-web-services amazon-ec2 ssh acl ec2-ami


【解决方案1】:

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

来自属性-->安全-->高级
1. 确保您的用户是文件的所有者
2. 专门为您的用户授予读取和执行权限,
同时为其他用户或组删除文件的所有其他权限。

【讨论】:

    【解决方案2】:

    对于使用 powershell 或 bash 的 windows 用户:

    cd 进入 your_keys.pem 文件夹。

    类型

    icacls.exe aws_keys.pem /reset

    icacls.exe aws_keys.pem /grant:r "$($env:username):(r)"

    icacls.exe aws_keys.pem /inheritance:r

    注意:这些命令提供的权限与 mac 上的 chmod 400 your_keys.pem 相同...

    然后使用ssh -i "your_keys.pem" ubuntu@your_public_server_ip.com

    【讨论】:

      【解决方案3】:

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

      查看更多:Understanding Linux File Permissions - Linux.com

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

      根据source code

      .Synopsis 设置安全文件 ACL。 1.删​​除除Administrators组、系统、当前用户外的所有用户acl 2. 是否获取所有者 .Outputs N/A .Inputs FilePath - 文件获取者的路径 - 如果要获取所有权

      【讨论】:

      • 其实我确实了解 Linux 文件权限。但很抱歉,我没有从 openssh-portable 获得关于脚本的部分
      • 尝试this提交
      • 还是不明白。我对这些东西很陌生,你的所有答案似乎都是压倒性的。 nvm 我会想办法(也许使用腻子之类的)
      猜你喜欢
      • 2011-07-13
      • 2022-10-14
      • 2021-06-05
      • 2020-08-07
      • 1970-01-01
      • 2011-10-30
      • 2020-03-13
      • 2019-08-08
      • 1970-01-01
      相关资源
      最近更新 更多