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

问题描述 投票:3回答:2

我有一个正在运行的EC2实例,该实例正在其上运行Linux OSAmazon Linux AMI release 2018.03)。

[鉴于Windows 10在命令提示符下具有SSH客户端,我试图使用SSH提供的EC2私钥(SSH文件)将.pem插入我的AWS实例, EC2实例的设置过程中需要一对密钥对。

我在cmd上使用的命令是:

ssh -i private_key.pem [email protected]

这里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
[email protected]: Permission denied (publickey).

我想澄清一些事情:

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

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

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

  4. 我知道可以通过使用Putty而不是CMD来简化此连接,但这不是这个问题的意思。假设由于某些限制,我不能使用Putty

任何帮助将不胜感激。

amazon-web-services amazon-ec2 ssh acl ec2-ami
2个回答
2
投票

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

来自属性->安全性->高级:1.让您的用户是文件的所有者2.特别为您的用户授予Read&Execute权限,同时删除其他用户或组对该文件的所有其他权限。

enter image description here


0
投票

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

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

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

根据source code

。摘要设置安全文件ACL。 1.删​​除了除管理员组,系统和当前用户以外的所有用户acl 2.是否接受所有者。OutputsN /A。InputsFilePath-文件接受所有者的路径-如果要获得所有权

© www.soinside.com 2019 - 2024. All rights reserved.