使用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客户端。我犯了同样的错误。
这似乎是一个非常简单的过程,所以我不知道自己可能做错了什么。如果您有任何想法,我很想听听他们的想法。但是,我的网络安全性不强,所以请做出对外行友好的回复。
答案 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的用户名:
答案 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的响应复制粘贴过程中弄乱了一些东西__(ツ)_ /