我是亚马逊网络服务的新手,正在尝试使用Windows中的putty启动一个亚马逊实例和ssh . 这些是我遵循的步骤,
-
创建了密钥对 .
-
使用SSH和HTTP规则创建安全组 .
-
使用上述密钥对和安全组启动EC2实例 .
-
使用puttygen将* .pem文件转换为* .ppk
-
使用putty尝试连接到实例的公共dns并提供* .ppk文件 .
我使用'root'和'ec2-user'登录,并使用SSH1和SSH2创建了ppk文件,因为所有这些尝试我在putty中得到以下错误,
“服务器拒绝我们的钥匙”
你们可以请帮助,任何建议将不胜感激 .
13 回答
当我尝试创建一个新密钥对并尝试使用新的pem / ppk文件时,我遇到了同样的错误 . 我注意到实例上的密钥对名称字段仍然是旧的并且在四处寻找 . 显然,你是一对钥匙 . 所以我回到原来的密钥对 . 幸运的是,我没有删除任何内容,所以这很容易足够 .
尝试替代SSH客户端,例如Poderosa . 它接受pem文件,因此您不需要转换密钥文件 .
我假设OP想出了这个或以其他方式继续前进,但答案是使用
ubuntu
作为用户(如果服务器是ubuntu) .1)确保在EC2实例的安全组中打开了端口22(SSH) .
2)尝试使用Elastic IP而不是公共DNS名称进行连接 .
我希望你已经按照这些步骤Connecting EC2 from a Windows Machine Using PuTTY
在使用putty,从windows到ssh到运行ubuntu的EC2实例时,我收到“服务器拒绝我们的密钥”错误的另一种情况:
puttygen有两个“转换键”选项 .
使用 File->Load Private Key 选项将.pem文件加载到puttygen中,然后使用 Save Private Key 按钮保存为.ppk文件 .
DO NOT 使用菜单选项 Conversions->Import Key 加载EC2生成的.pem文件 .
检查用户名,你的机器应该是“ubuntu” . 检查安全组中端口22上是否启用了流量 . 检查您是否使用了正确的URL,即ubuntu @public / elasticip
也许值得再检查一件事 . 转到AWS控制台,在实例上单击鼠标右键,然后选择“连接...” . 它将显示您要使用的DNS名称 . 如果您在某个时刻重新启动该实例,则该DNS名称可能已更改 .
当我尝试连接由Elastic Beanstalk服务(EBS)自动创建的实例时,我遇到了类似的问题 . 但是,一旦我将现有的密钥名称链接到EBS(在环境详细信息 - >编辑配置 - >服务器选项卡 - >现有密钥对)下,我就可以使用'ec2-user'和我现有的密钥文件登录(转换为.ppk)用腻子 .
但是,这会终止正在运行的实例,并通过上面指定的密钥对重建一个具有访问权限的新实例 .
为了防止其他人,我在更改我的实例中的主文件夹的权限后遇到此错误 . 我正在测试一些东西,并在我的主文件夹上执行了chmod -R 777 . 一旦发生这种情况,一旦我退出,我就被锁定了 .
我假设您正在关注this guide,并使用subsequent page上的说明进行连接 . 验证一些事情:
您正确转换了密钥,例如选择了正确的.pem文件,保存为私钥,1024位SSH-2 RSA
验证设置(连接教程中的步骤4)是正确的
我遇到了同样的麻烦(并采取了相同的步骤),直到我将用户名更改为'admin'为我正在使用的debian AMI .
您应该查找您正在使用的AMI的用户名 . 这里记录了debian AMI http://wiki.debian.org/Cloud/AmazonEC2Image/Squeeze
我遇到过同样的问题 . 您正在使用的AMI也是“Cloud Formation”模板解决方案所使用的AMI .
最后我放弃了,并创建了一个Red Hat实例 . 然后,我可以使用用户
root
通过SSH连接 .这里的说明:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/putty.html使用Red Hat实例但没有使用Amazon Linux实例正常工作 . 我假设他们有一些我认为不会尝试的用户名(root,ec2-user和许多其他明显的用户名,都被拒绝了)
希望有人帮助!
我使用Debain AMI,我尝试ec2-user,root但正确的登录是'admin' .