Amazon EC2 (Elastic Compute Cloud) — это масштабируемый облачный сервис, который позволяет пользователям создавать виртуальные серверы и управлять ими. Однако при подключении к инстансу EC2 пользователи часто сталкиваются с сообщениями об ошибках, которые могут их раздражать. В этой статье мы рассмотрим наиболее распространённые ошибки подключения к EC2, их причины и способы устранения.
1. Ошибка отказа в разрешении (открытый ключ)
Эта ошибка возникает, когда закрытый ключ, используемый для подключения к инстансу EC2, не соответствует открытому ключу, настроенному на инстансе. Обычно это происходит из-за неправильных или отсутствующих пар ключей.
Permission denied (publickey).
Решение:
- Проверьте пару ключей: убедитесь, что вы используете правильный файл .pem, соответствующий открытому ключу инстанса EC2.
- Проверьте права доступа к файлу (Linux/MacOS): файл закрытого ключа должен иметь ограниченный доступ (только для чтения для владельца).
chmod 400 your-key.pem
- Убедитесь, что открытый ключ настроен на инстансе: вы можете добавить правильный открытый ключ в файл `~/.ssh/authorized_keys` инстанса EC2.
2. Ошибка незащищенного файла закрытого ключа
Эта ошибка возникает, когда права доступа к вашему файлу закрытого ключа слишком открыты, что делает его доступным для других пользователей системы. SSH отказывается использовать закрытый ключ, который не защищен должным образом.
Ошибка :
WARNING: UNPROTECTED PRIVATE KEY FILE! Permissions for 'your-key.pem' are too open.
Решение:
- Настройка прав доступа к файлам (Linux / macOS):
chmod 400 your-key.pem
- Для Windows: убедитесь, что файл ключа недоступен для других пользователей, проверив свойства файла и ограничив права доступа.
3. Ошибка таймаута подключения
Эта ошибка возникает, когда истекает время ожидания подключения SSH к инстансу EC2, часто из-за проблем с сетью, неправильной настройки группы безопасности или неверных IP-адресов инстанса.
Ошибка:
ssh: connect to host ec2-xxx-xxx-xxx-xxx.compute.amazonaws.com port 22: Connection timed out
Решение:
- Проверьте настройки группы безопасности: убедитесь, что группа безопасности вашего инстанса EC2 разрешает входящий трафик через порт 22 (SSH). Добавьте в свою группу безопасности следующее правило: Тип: SSH Порт: 22 Источник: ваш IP (или 0.0.0.0/0 для глобального доступа, хотя это не рекомендуется)
- Проверьте эластичный IP-адрес/публичный IP-адрес: убедитесь, что вы используете правильный публичный IP-адрес или эластичный IP-адрес, назначенный инстансу.
- Проверьте сетевые списки управления доступом: убедитесь, что сетевые списки управления доступом вашего VPC разрешают входящий и исходящий трафик через порт 22.
4. Не удалось выполнить проверку ключа хоста
Это происходит, когда меняется ключ хоста инстанса EC2, что обычно случается, если инстанс был остановлен, перезапущен или его IP-адрес изменился.
Ошибка:
Warning: Remote host identification has changed!
Решение:
- Удаление старого ключа хоста: Вы можете удалить старый ключ, отредактировав файл ~/.ssh/known_hosts или выполнив следующую команду:
ssh-keygen -R "your-instance-ip"
- Повторно добавьте ключ хоста: после удаления старого ключа попробуйте подключиться повторно. SSH предложит вам добавить новый ключ.
5. Ошибка отказа в подключении
Экземпляр EC2 отклоняет подключение. Это часто происходит, если служба SSH не запущена или если брандмауэр или настройки группы безопасности блокируют подключение.
Ошибка:
ssh: connect to host ec2-xxx-xxx-xxx-xxx.compute.amazonaws.com port 22: Connection refused
Решение:
- Проверьте службу SSH: убедитесь, что служба SSH запущена на экземпляре EC2. Если нет, вы можете запустить её:
sudo service ssh start
- Проверьте настройки группы безопасности: Убедитесь, что порт 22 открыт и правильно настроен для разрешения входящих подключений.
- Проверьте правила брандмауэра: убедитесь, что внутренний брандмауэр экземпляра (например, ufw в Ubuntu) не блокирует SSH-соединения.
6. Ошибка: сброс подключения одноранговым узлом
Эта ошибка может возникать по многим причинам, таким как неправильные правила группы безопасности, перегрузка экземпляра или проблемы с брандмауэром.
Ошибка:
ssh_exchange_identification: read: Connection reset by peer
Решение:
- Проверьте группы безопасности и сетевые списки управления доступом: Проверьте правила в ваших группах безопасности и сетевых списках управления доступом, убедившись, что входящий и исходящий трафик через порт 22 разрешен.
- Проверка работоспособности экземпляра: убедитесь, что ваш экземпляр исправен и не перегружен. Проверьте системные журналы на наличие любых признаков высокой загрузки процессора или памяти.
- Проверьте брандмауэр на основе хоста: убедитесь, что любой брандмауэр, запущенный на экземпляре EC2 (например, iptables, ufw), не блокирует входящий SSH-трафик.
Заключение
Подключение к экземпляру EC2 иногда может быть сложной задачей, особенно при возникновении ошибок. Понимание первопричины и знание способов решения этих распространенных проблем может сэкономить вам много времени. Ключевыми моментами являются правильная настройка вашей пары ключей, правильные группы безопасности и запущенные службы экземпляра.
С помощью этих решений вы сможете устранить наиболее распространённые ошибки подключения и беспрепятственно подключаться к своим инстансам EC2.