Что означает ошибка «SSH-запрос был отклонен»
Ошибка с текстом «SSH-запрос был отклонен» (ErrorCode: 300) возникает на этапе, когда клиент AmneziaVPN пытается подключиться к вашему серверу по SSH для установки или обновления конфигурации. Это не ошибка самого VPN-туннеля, а сбой на этапе аутентификации или соединения с SSH-сервером.
AmneziaVPN использует SSH не только для первоначальной установки, но и для управления контейнерами, создания новых конфигураций и применения изменений. Если SSH-соединение не устанавливается, приложение не может выполнить ни одну из этих операций, поэтому вы видите соответствующее сообщение.
Важно понимать, что ошибка может появляться как при первичной настройке, так и при последующих подключениях, если вы меняли настройки SSH на сервере. Например, если вы отключили авторизацию по паролю и оставили только ключи, но клиент продолжает пытаться использовать логин и пароль, вы получите именно эту ошибку.
Основные причины ошибки
Ошибка «SSH-запрос был отклонен» может быть вызвана несколькими факторами. Рассмотрим самые распространённые.
Закрытый порт SSH. Если на сервере или в фаерволе облачного провайдера порт 22 (или нестандартный порт SSH) закрыт для входящих подключений, клиент не сможет установить соединение. Проверьте, что порт открыт в security groups вашего облака и в локальном файрволе сервера.
Неверные учётные данные. AmneziaVPN требует root-доступа или пользователя с полными правами. Если вы указали обычного пользователя без привилегий, SSH-соединение может быть отклонено. Убедитесь, что логин и пароль или ключ соответствуют данным, которые вы используете для входа на сервер.
Нестандартный порт SSH. Если SSH на сервере работает на порту, отличном от 22, вы должны указать этот порт в настройках AmneziaVPN. Если порт не указан, клиент будет пытаться подключиться к 22-му порту и получит отказ.
Проблемы с ключами. Если вы настроили аутентификацию по ключу, но ключ не подходит (например, неверный формат или не тот ключ), SSH-сервер отклонит запрос. Это частая ситуация, когда пользователи пытаются использовать ключи PuTTY (.ppk) без конвертации в формат OpenSSH.
Сервер ещё не готов. На свежесозданных VPS первые несколько минут может идти инициализация, и SSH-сервер ещё не запущен. В этом случае достаточно подождать пару минут и повторить попытку.
Как проверить доступ к серверу вручную
Прежде чем менять настройки AmneziaVPN, убедитесь, что SSH-доступ к серверу работает в принципе. Выполните с локальной машины команду:
ssh root@ВАШ_IPЕсли вы используете нестандартный порт, укажите его:
ssh -p ПОРТ root@ВАШ_IPЕсли ручное подключение проходит успешно, проблема, скорее всего, в настройках AmneziaVPN. Если же SSH не работает и вручную, чините доступ на уровне сервера или провайдера.
Также проверьте, что сервер доступен по сети: выполните ping или используйте утилиту типа nc -zv ВАШ_IP 22 для проверки доступности порта. Если порт не открыт, настройте фаервол или security group.
Помните, что AmneziaVPN требует root-доступа. Если вы заходите под обычным пользователем, проверьте, есть ли у него права sudo и может ли он выполнять команды без пароля (NOPASSWD). В противном случае приложение не сможет выполнить необходимые операции.
Настройка SSH-ключей для AmneziaVPN
Если вы хотите отключить авторизацию по паролю на сервере и использовать только ключи, необходимо правильно настроить клиент AmneziaVPN. Ошибка «SSH-запрос был отклонен» часто возникает именно из-за неверного формата ключа или неправильного способа его указания.
Формат ключа. AmneziaVPN работает с ключами в формате OpenSSH. Если вы генерировали ключ в PuTTYgen, он будет в формате .ppk, который Amnezia не понимает. Сконвертируйте ключ в формат OpenSSH или сгенерируйте новый с помощью ssh-keygen.
Тип ключа. Рекомендуется использовать ключи Ed25519. Они современные, быстрые и поддерживаются большинством SSH-серверов. Пример генерации:
ssh-keygen -t ed25519 -f amnezia_keyУказание ключа в AmneziaVPN. В настройках подключения в поле пароля (или в отдельном поле для ключа) необходимо вставить полное содержимое закрытого ключа, включая строки BEGIN OPENSSH PRIVATE KEY и END OPENSSH PRIVATE KEY. Это важно: если вставить только тело ключа без заголовков, SSH-клиент не сможет его распознать.
Публичный ключ на сервере. Убедитесь, что публичный ключ добавлен в файл ~/.ssh/authorized_keys на сервере для пользователя, под которым работает AmneziaVPN. Если ключи не совпадают, подключение будет отклонено.
После настройки ключей проверьте подключение вручную с помощью ssh -i amnezia_key root@ВАШ_IP, чтобы убедиться, что всё работает.
Ошибка при установке: сервер не чистый или диск забит
Если ошибка «SSH-запрос был отклонен» возникает на этапе установки, но SSH-доступ вручную работает, причина может быть в состоянии сервера. AmneziaVPN разворачивает Docker-контейнеры, и если на сервере уже есть чужие контейнеры, заняты нужные порты или мало места на диске, установка может зависнуть или упасть.
Проверьте состояние сервера:
docker ps -a
df -h
journalctl -n 50 --no-pagerЕсли диск забит, Docker не сможет скачать образы — освободите место. Если вы видите чужие контейнеры на портах, которые нужны Amnezia, остановите их или разверните Amnezia на отдельном чистом VPS.
Также обратите внимание на скорость канала сервера: если она слишком низкая, загрузка образов может занять очень много времени, и приложение будет выглядеть зависшим. В этом случае поможет только сервер с более быстрым интернетом.
После неудачной установки перед повторной попыткой удалите оставшиеся контейнеры Amnezia, чтобы они не мешали новой установке.
Подключение есть, но интернета нет
Иногда ошибка «SSH-запрос был отклонен» не появляется, но после подключения к VPN интернет не работает. Это может быть связано с неправильной маршрутизацией или DNS.
Сначала проверьте, сменился ли ваш IP-адрес на сервисе проверки IP. Если IP не сменился, трафик не идёт через туннель — попробуйте переподключиться или сменить протокол в приложении.
Если IP сменился, но сайты не открываются, вероятно, проблема в DNS. Контейнер Amnezia отдаёт клиенту свой DNS-резолвер, который может быть медленным или заблокированным. Попробуйте в настройках подключения задать публичный DNS, например 1.1.1.1 или 8.8.8.8.
Также проверьте на сервере, слушает ли контейнер свой порт:
docker ps
ss -lntupЕсли контейнер не работает, перезапустите его через приложение (отключитесь и подключитесь заново) или пересоздайте протокол в интерфейсе Amnezia — это развернёт контейнер заново с корректными правилами.
На Windows 11 иногда помогает сброс сетевых настроек: netsh int ip reset и netsh winsock reset с последующей перезагрузкой. Также можно использовать графический сброс сети в настройках Windows.
Проблемы с протоколом и блокировками
Если VPN работал, а потом перестал, и вы видите ошибку «SSH-запрос был отклонен» или просто пропадает соединение, возможно, провайдер начал блокировать протокол AmneziaWG. Это случается, когда DPI-системы распознают сигнатуру протокола.
Решение — сменить протокол в приложении. AmneziaVPN поддерживает несколько протоколов: AmneziaWG, XRay, OpenVPN и другие. Переключитесь на XRay или протокол поверх TLS, который выглядит как обычный HTTPS и лучше проходит через DPI.
Если заблокирован сам IP-адрес сервера (сервер не пингуется даже напрямую), смена протокола не поможет — нужен новый чистый IP.
Также обратите внимание на версию протокола. Например, переход на AmneziaWG 2 может решить проблему, если предыдущая версия блокируется. Убедитесь, что и сервер, и клиент поддерживают новую версию.
Обрывы соединения и поведение при смене сети
Обрывы после простоя — типичная проблема для UDP-протоколов вроде AmneziaWG. NAT провайдера закрывает «тихую» сессию, и при следующей попытке передать данные соединение оказывается разорванным. Помогает встроенный keepalive, но если обрывы частые, стабильнее держится TLS-протокол поверх TCP.
На мобильных устройствах проверьте, что приложению разрешена фоновая работа и его не выгружает энергосбережение. Иначе система сама разрывает VPN, и это выглядит как проблема сервера.
При переключении между Wi-Fi и мобильной сетью туннель нужно переустановить. Некоторые клиенты делают это не мгновенно, и несколько секунд трафик идёт мимо VPN. Если для вас критично, чтобы соединение не рвалось, выбирайте протокол поверх TCP.
На десктопе проверьте, что спящий режим не усыпляет сетевой адаптер. После пробуждения система иногда поднимает интерфейс раньше, чем VPN-клиент успевает переподключиться, и первые запросы уходят напрямую.
Когда проблема не в конфиге, а в сервере
Часть проблем с AmneziaVPN связана не с настройками, а с качеством сервера. Если IP-адрес сервера уже засвечен в чёрных списках, часть сервисов будет отдавать капчу или блокировать, каким бы протоколом вы ни пользовались.
Если у сервера плавающая полоса и высокая нагрузка от соседей, будут просадки скорости и обрывы независимо от протокола. Поэтому для устойчивого обхода блокировок выбирайте чистый, не забаненный VPS с гарантированными ресурсами.
Также учитывайте, что у некоторых провайдеров свежесозданные серверы первые минуты инициализируются, и SSH может быть ещё не готов. Подождите пару минут и повторите попытку.
Если вы используете сервер, на котором уже стоял Docker с чужими контейнерами, это может мешать установке Amnezia. Лучше развернуть Amnezia на отдельном чистом VPS.
Пошаговый план устранения ошибки
Соберём все рекомендации в единый алгоритм действий, который поможет исправить ошибку «SSH-запрос был отклонен».
- Проверьте SSH-доступ вручную. Выполните
ssh root@ВАШ_IPс локальной машины. Если не работает — чините доступ на уровне сервера или провайдера. - Убедитесь, что порт SSH открыт. Проверьте security groups облака и локальный файрвол. Если используете нестандартный порт, укажите его в настройках AmneziaVPN.
- Проверьте учётные данные. AmneziaVPN требует root или пользователя с полными правами. Убедитесь, что логин и пароль/ключ верны.
- Если используете ключи, проверьте формат. Ключ должен быть в формате OpenSSH, желательно Ed25519. Вставьте полное содержимое ключа в поле пароля в AmneziaVPN.
- Проверьте состояние сервера. Выполните
df -h,docker ps -a, освободите место, удалите лишние контейнеры. - Попробуйте временно включить авторизацию по паролю. На этапе первичной установки это может помочь, а потом переключитесь на ключи.
- Если подключение есть, но нет интернета, проверьте IP, DNS, перезапустите контейнер.
- Если работало и перестало, смените протокол на XRay или TLS, проверьте блокировку IP.
- Если ничего не помогает, переустановите приложение, сбросьте сетевые настройки Windows, попробуйте другой сервер.
Следуя этому плану, вы сможете локализовать проблему и устранить её.
Вопросы и ответы
Почему AmneziaVPN выдаёт ошибку «SSH-запрос был отклонен»?
Ошибка возникает, когда клиент AmneziaVPN не может подключиться к SSH-серверу на вашем VPS. Причины могут быть разными: закрытый порт SSH, неверные учётные данные, нестандартный порт, проблемы с ключами или сервер ещё не готов. Проверьте SSH-доступ вручную командой ssh root@ВАШ_IP и убедитесь, что порт открыт и логин/пароль верны.
Как настроить AmneziaVPN для подключения по SSH-ключу?
Сгенерируйте ключ Ed25519 в формате OpenSSH (например, ssh-keygen -t ed25519), добавьте публичный ключ в ~/.ssh/authorized_keys на сервере, а в настройках AmneziaVPN в поле пароля вставьте полное содержимое закрытого ключа, включая строки BEGIN OPENSSH PRIVATE KEY и END OPENSSH PRIVATE KEY. Убедитесь, что на сервере разрешена аутентификация по ключу (PubkeyAuthentication yes).
Что делать, если AmneziaVPN подключается, но интернета нет?
Проверьте, сменился ли ваш IP-адрес. Если нет — переподключитесь или смените протокол. Если IP сменился, но сайты не открываются, вероятно, проблема в DNS. Задайте публичный DNS (1.1.1.1 или 8.8.8.8) в настройках подключения. Также проверьте состояние контейнера на сервере (docker ps, ss -lntup) и перезапустите его через приложение.
Почему AmneziaVPN перестал работать после недели использования?
Скорее всего, провайдер начал блокировать протокол AmneziaWG по сигнатуре. Попробуйте сменить протокол на XRay или TLS в приложении. Если сервер не пингуется даже напрямую, возможно, заблокирован IP-адрес — в этом случае нужен новый сервер.
Можно ли использовать ключи PuTTY (.ppk) в AmneziaVPN?
Нет, AmneziaVPN не поддерживает формат .ppk. Необходимо сконвертировать ключ в формат OpenSSH (например, с помощью PuTTYgen: Conversions → Export OpenSSH key) или сгенерировать новый ключ с помощью ssh-keygen. Только после этого его можно использовать в AmneziaVPN.
Что делать, если установка AmneziaVPN зависает на сервере?
Проверьте, что на сервере достаточно места на диске (df -h), нет ли чужих Docker-контейнеров (docker ps -a), и что канал сервера достаточно быстрый. Освободите место, удалите лишние контейнеры, а лучше разверните Amnezia на отдельном чистом VPS. Также убедитесь, что порт SSH открыт и сервер полностью инициализирован.