Соединение AWS EC2 закрывается при попытке использования ssh

недавно я создал новый экземпляр EC2. На следующий день я не смог подключиться к моему экземпляру через ssh. Я мог подключиться и отключиться накануне, клянусь, я ничего не сделал. здесь ssh debug info:

ssh -i webserver.pem -v [email protected]
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

Есть ли способ решить эту проблему? Или я снова переустановил свой экземпляр? Пожалуйста, помогите, как мне нужно решить это как можно скорее. Ваша помощь очень ценится!

Права PS для моего.pem установлены в 600.

Ответ 1

Проверьте свою группу безопасности. Убедитесь, что у вас есть правило исходящего трафика, которое позволяет трафику возвращаться из экземпляра.

По умолчанию исходящее правило

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

это будет работать.

Ответ 2

Моя проблема была в том, что имя пользователя было неверным. В экземплярах Ubuntu это должно быть "Ubuntu", а в случае Amazon - "ec2-user".

Ответ 3

(1) Проверьте, когда вы выполняете команду ssh, находитесь ли вы в той же папке, где вы кладете свой ключ. Кроме того, вы должны использовать "ssh -i/your_key_path/mykey.pem".

(2) Если это не поможет. Я думаю, вы могли бы создать еще один ключ и установить экземпляр EC2 через веб-страницу AWS. Затем повторите попытку.

Ответ 4

У меня была эта проблема, и оказалось, что файл PEM был неправильным. Вы можете проверить, следуя инструкциям в парах ключей Amazon EC2 - Проверка отпечатка пальца пары ключей:

Если вы создали пару ключей с помощью 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

Вывод должен соответствовать отпечатку пальца, отображаемому в консоли.

Ответ 5

У меня была та же проблема, это проблема разрешений, которые вы даете файлу закрытого ключа pem. Убедитесь, что вы запустили команду ssh в терминале с правами администратора (sudo).

Ответ 6

Часто вам следует использовать имя пользователя по умолчанию для AMI, который вы использовали для запуска своего экземпляра:

  • Для Amazon Linux 2 или Amazon Linux AMI имя пользователя:
    ec2 пользователь.
  • Для CentOS AMI имя пользователя - centos.
  • Для Debian AMI имя пользователя - admin или root.
  • Для Fedora AMI имя пользователя - ec2-user или fedora.
  • Для AMI RHEL имя пользователя - 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