在将ssh尝试到实例时关闭AWS EC2连接

时间:2013-06-07 20:58:46

标签: ssh amazon-web-services amazon-ec2 connection ubuntu-12.04

最近我建立了一个新的EC2实例。第二天我无法通过ssh连接到我的实例。我可以在前一天连接和断开连接,我发誓我什么也没做。这是ssh调试信息:

ssh -i webserver.pem -v ubuntu@my.elastic.ip
OpenSSH_5.9p1, OpenSSL 0.9.8r 8 Feb 2011
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: Connecting to my.elastic.ip [my.elastic.ip] port 22.
debug1: Connection established.
debug1: identity file webserver.pem type -1
debug1: identity file webserver.pem-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.9p1 Debian-5ubuntu1.1
debug1: match: OpenSSH_5.9p1 Debian-5ubuntu1.1 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.9
debug1: SSH2_MSG_KEXINIT sent
Connection closed by my.elastic.ip

有没有办法解决这个问题?或者我应该重新安装我的实例? 请帮忙,因为我需要尽快解决这个问题。非常感谢您的帮助!

我的.pem的PS权限设置为600。

9 个答案:

答案 0 :(得分:47)

我的问题是用户名不正确。在ubuntu实例上,它应该是“ ubuntu”,在亚马逊实例上,它应该是“ ec2-user”

答案 1 :(得分:5)

检查您的安全组。确保您有一个允许流量从实例返回的出站规则。

使用默认出站规则

type: All traffic, Protocol: All, Ports: All, Destination: 0.0.0.0/0

它会起作用。

答案 2 :(得分:5)

通常,您应该使用用于启动实例的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提供程序联系。

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connection-prereqs.html#connection-prereqs-get-info-about-instance

答案 3 :(得分:3)

请检查您的用户名。如果您使用的是ubuntu实例,请尝试在用户名中使用“ ubuntu”而不是“ ec2-user”,反之亦然

答案 4 :(得分:1)

(1)请检查执行ssh命令的时间,是否与放置pem键的文件夹相同。否则你应该使用“ssh -i / your_key_path /mykey.pem”。

(2)如果这没有帮助。我认为您可以创建另一个密钥并通过AWS网页设置您的EC2实例。然后再试一次。

答案 5 :(得分:0)

我遇到了这个问题,结果证明PEM文件不正确。您可以按照Amazon EC2 Key Pairs - Verifying Your Key Pair's Fingerprint中的说明进行检查:

  

如果您使用AWS创建了密钥对,则可以使用OpenSSL工具从私钥文件生成指纹:

$ openssl pkcs8 -in path_to_private_key -inform PEM -outform DER -topk8 -nocrypt | openssl sha1 -c
     

如果您使用第三方工具创建了密钥对并将公钥上传到AWS,则可以使用OpenSSL工具从本地计算机上的私钥文件生成指纹:

$ openssl rsa -in path_to_private_key -pubout -outform DER | openssl md5 -c
     

输出应与控制台中显示的指纹匹配。

答案 6 :(得分:0)

我遇到了同样的问题,这是您授予pem私钥文件权限的问题。确保在具有sudo(管理)访问权限的终端中运行ssh命令。

答案 7 :(得分:0)

我有同样的问题,但我通过“重新启动” EC2来解决。请注意,重新启动EC2不会更改其IP地址,但是停止并重新启动它确实会更改它。

这是一个简单的解决方法,但请确保您可以承担少量的停机时间。就我而言,网站突然停止了工作。

答案 8 :(得分:0)

通过创建新的私钥文件/对解决了这个问题。

当我想在创建后的几天重用现有密钥时出现了问题。 然后,只需使用提供的命令 here