AWS EC2无法使用密钥对进行SSH

时间:2018-09-11 06:03:38

标签: amazon-web-services amazon-ec2

使用SSH进入运行中的AWS EC2实例时遇到一些问题。根据说明,我需要创建一个密钥对,该密钥对将下载一个名为.pem的{​​{1}}私钥文件。从保存该文件的目录中,我应该执行命令:

QARTH.pem

但是,我得到了错误:

ssh -i "QARTH.pem" ubuntu@ec2-XX-XX-XX-XXX.us-west-2.compute.amazon.com

我正在使用自动生成的Permission denied (publickey). 安全组,该组允许端口22传入对所有IP的访问。

我还使用了示例过程将launch-wizard文件转换为PuTTy私钥.pem文件,并使用了PuTTy客户端。我犯了同样的错误。

这似乎是一个非常简单的过程,所以我不知道自己可能做错了什么。如果您有任何想法,我很想听听他们的想法。但是,我的网络安全性不强,所以请做出对外行友好的回复。

3 个答案:

答案 0 :(得分:1)

您使用了错误的密钥对(QARTH.pem),错误的用户名,连接到错误的系统,或者QARTH.pem未设置为只读。

步骤1:向ssh添加调试选项,以帮助确定问题所在:

ssh -v -i QARTH.pem ubuntu@ec2-XX-XX-XX-XXX.us-west-2.compute.amazon.com

步骤2:确保密钥对文件是只读的。

LINUX: 要将密钥对文件设置为只读,请执行以下命令:chmod 400 QARTH.pem与文件位于同一目录中。

WINDOWS: 在Windows系统上(以管理员身份)运行以使密钥对变为只读并满足ssh的命令:

请注意用您的用户名替换%USERNAME%。

REM Disable inheritance on QARTH.pem
icacls QARTH.pem /inheritance:d

REM Delete "NT AUTHORITY\Authenticated Users" from having any rights
icacls QARTH.pem /remove "NT AUTHORITY\Authenticated Users"

REM Delete "BUILTIN\Users" from having any rights
icacls QARTH.pem /remove "BUILTIN\Users"

REM Grant Read-Only rights to me
icacls QARTH.pem /GRANT:R "%USERNAME%:(R)"

第3步:确保您使用的EC2 AMI使用正确的用户名:

流行的EC2 AMI的用户名:

  • 对于Amazon Linux 2或Amazon Linux AMI,用户名是ec2-user。
  • 对于Centos AMI,用户名是centos。
  • 对于Debian AMI,用户名是admin或root。
  • 对于Fedora AMI,用户名是ec2-user或fedora。
  • 对于RHEL AMI,用户名是ec2-user或root。
  • 对于SUSE AMI,用户名是ec2-user或root。
  • 对于Ubuntu AMI,用户名是ubuntu。
  • 否则,如果ec2-user和root不起作用,请与AMI提供程序联系。

答案 1 :(得分:0)

为确保连接方式没有错误:

转到EC2-> Instances

选择您的实例

然后按Connect

您应该从Connect Popup获得指导。

如果从公司网络连接,请尝试从另一个网络连接。可能是防火墙问题。

最后但并非最不重要的一点是,请确保在.ssh路径内使用ssh,或提供正确的pem路径

答案 2 :(得分:0)

  

TL; DR   尝试通过AWS控制台使用手动生成的SSH密钥对

好吧,同事们,我完全没有想法(完全不知道),但是当我使用CLI命令生成密钥时,SSH连接确实不起作用

aws --region us-east-1 ec2 create-key-pair --key-name "KeyPair"

但是,当我使用 AWS控制台手动创建SSH密钥pai时,它工作得很好:

1. Go to AWS Console
2. EC2 :: Network & Security (in left menu) :: Key Pairs :: Create Key Pair
3. <As soon as I am specifying the name of a key pair Amazon downloads the keys into a default download directory>
4. chmod 400 KeyPair.pem
5. ssh -i ./SSHKeys.pem ec2-user@ec2-54-162-166-40.compute-1.amazonaws.com
6. ENJOY!

P.S。我很确定我在从CLI的响应复制粘贴过程中弄乱了一些东西__(ツ)_ /