Не могу подключиться по SSH
Если SSH на VPS ForestsNet Cloud не пускает, причина почти всегда одна из немногих: сервер выключен, неверный адрес или порт, файрвол блокирует соединение, служба sshd не отвечает, IP забанен в fail2ban, либо не подходит пароль или ключ. В этой статье — чек-лист: как по тексту ошибки понять, что именно сломалось, и как это исправить, используя графическую консоль VMmanager 6, если сам SSH недоступен.
Что понадобится
- VPS ForestsNet Cloud на Ubuntu 22.04/24.04, Debian 11/12 или AlmaLinux/Rocky Linux 8/9.
- IP-адрес сервера и учётные данные — root или sudo-пользователь, пароль или SSH-ключ.
- Доступ к панели VMmanager 6 — как запасной вариант: графическая консоль VNC в ней работает независимо от SSH и файрвола сервера, поэтому позволяет исправить проблему изнутри, даже если сам SSH недоступен. Если ещё не заходили в панель — см. «Как войти в VMmanager 6».
Шаг 1. Прочитайте текст ошибки — он подсказывает, где искать
SSH-клиент обычно не просто молчит при отказе — он называет причину, и она сразу сужает круг подозреваемых:
- `Connection refused` (полная строка обычно выглядит как
ssh: connect to host 194.93.61.1 port 22: Connection refused) — сервер ответил «здесь никто не слушает»: пакет дошёл, но подключение сразу отклонено. Обычно это значит, что служба sshd не запущена или слушает другой порт (Шаг 5); реже — что ваш IP только что забанен fail2ban (Шаг 6 — действие бана в fail2ban по умолчанию как раз отвечает отказом, а не тишиной) или сработало явное правило файрвола на отклонение. В любом случае сеть и IP-адрес точно в порядке — сервер вам ответил. - `Connection timed out` (
ssh: connect to host 194.93.61.1 port 22: Connection timed out), либо подключение просто зависает без ответа — в отличие от «refused», сюда вообще ничего не вернулось. Обычно это файрвол молча отбрасывает пакеты — например, правило ufw по умолчанию (Шаг 4), — либо сервер выключен (Шаг 2), либо указан неверный IP-адрес (Шаг 3). - `Permission denied (publickey,password)` (или
(publickey), если пароль отключён) — сеть, файрвол и sshd тут ни при чём: соединение уже установлено, sshd на связи, но он не принял ваши учётные данные. Разбирайтесь с логином, паролем или ключом (Шаг 7).
ℹ️ Совет: если сообщение непонятно или подключение просто зависает без объяснений, запустите ssh -v [email protected] — флаг -v покажет, на каком именно шаге всё останавливается: до TCP-соединения, при согласовании протокола или уже на аутентификации. Для максимальной детализации есть -vvv.
Шаг 2. Убедитесь, что сервер вообще включён
- Войдите в панель VMmanager 6 — см. «Как войти в VMmanager 6».
- В списке виртуальных машин найдите свой сервер и посмотрите на его статус.
- Если сервер выключен — откройте меню «⋮» (три точки) рядом с ним и выберите «Запустить».
- Если сервер числится включённым, но не отвечает вообще ни на что — там же есть «Перезапустить».
📷 скриншот: список ВМ со статусом сервера и меню «⋮» с пунктами «Запустить»/«Перезапустить»
ℹ️ Проверьте: точный текст статуса и названия пунктов меню могут немного отличаться в зависимости от версии панели VMmanager 6 — ориентируйтесь на состояние «включён/выключен» и на меню «⋮» рядом с сервером.
Самая надёжная проверка — открыть графическую консоль VNC прямо в браузере: у неё нет отдельных требований к сети и файрволу сервера, так что если он загрузился, вы увидите его экран в любом случае. Подробный порядок действий — в статье «Консоль VNC и первое подключение (SSH/RDP)».
✅ Готово: если в VNC видно приглашение на вход (login:) или рабочий стол — сервер точно включён и загрузился, а SSH стоит проверять дальше по шагам ниже. Если и VNC не открывается — обратитесь в поддержку ForestsNet Cloud, дело не в SSH.
Шаг 3. Проверьте IP-адрес, порт и имя пользователя
- IP-адрес. Возьмите его из письма об активации сервера или со вкладки «IP-адреса» в карточке ВМ в VMmanager 6. После переустановки ОС адрес обычно остаётся прежним, но сверить не помешает — особенно если подключаетесь по старой заметке или сохранённому профилю в SSH-клиенте.
- Порт. По умолчанию SSH слушает
22, и без флага-pклиент всегда пробует именно его. Если порт меняли (см. статью «Усиление SSH») — указывайте его явно:ssh -p 2222 [email protected]. - Имя пользователя.
rootподходит для свежего сервера. Если позже завели отдельного пользователя сsudoи ограничили root по SSH — подключайтесь именно под ним:ssh [email protected], а не подroot. Имя пользователя регистрозависимо.
ℹ️ Совет: старая запись в ~/.ssh/known_hosts от прежнего сервера с тем же IP-адресом — или от этого же сервера, но после переустановки ОС (он получает новый ключ хоста), — выдаёт пугающее предупреждение WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! и блокирует подключение. Это не ошибка доступа — просто обновите запись: ssh-keygen -R 194.93.61.1.
Шаг 4. Проверьте, не блокирует ли соединение файрвол
Если на Шаге 1 была ошибка timed out — начинайте отсюда: похоже, пакеты молча отбрасывает файрвол.
Ubuntu / Debian (ufw)
sudo ufw statusЕсли в списке нет разрешающего правила для SSH — добавьте его:
sudo ufw allow OpenSSHℹ️ Совет: OpenSSH — это профиль приложения на порт 22, который регистрирует пакет openssh-server (доступен на Ubuntu; на Debian такого профиля может не быть — используйте sudo ufw allow 22/tcp). Если вы меняли порт SSH на нестандартный, разрешайте именно его: sudo ufw allow 2222/tcp.
AlmaLinux / Rocky (firewalld)
sudo firewall-cmd --state
sudo firewall-cmd --list-servicesЕсли ssh нет среди разрешённых сервисов — добавьте:
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reloadЕсли меняли порт SSH — открывайте его отдельно, --add-service=ssh в этом случае не поможет:
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload⚠️ Важно: раз вы читаете эту статью, SSH и так недоступен — выполняйте команды этого шага через консоль VNC в VMmanager 6 (Шаг 2), а не пытайтесь сначала зайти по самому SSH.
Если статус файрвола — inactive (ufw) или not running (firewalld), он ни при чём — переходите к следующему шагу. Подробный разбор правил и логики ufw — в статье «Настройка файрвола UFW».
Шаг 5. Проверьте, что служба sshd вообще запущена
Если файрвол ни при чём, а на Шаге 1 была ошибка refused — скорее всего, дело в самой службе. Проверить и исправить это можно только изнутри сервера — через консоль VNC (Шаг 2), поскольку по SSH вы туда как раз попасть не можете.
Проверьте статус:
# Ubuntu/Debian
systemctl status ssh
# AlmaLinux/Rocky Linux
systemctl status sshdЕсли статус не active (running) — запустите службу и включите автозапуск:
# Ubuntu/Debian
systemctl enable --now ssh
# AlmaLinux/Rocky Linux
systemctl enable --now sshdПроверьте, на каком порту она реально слушает:
ss -tlnp | grep sshПорт после двоеточия в выводе (например, 0.0.0.0:22) должен совпадать с тем, что вы указываете в ssh -p.
Если служба падает сразу после запуска — посмотрите лог:
# Ubuntu/Debian
journalctl -u ssh -n 50 --no-pager
# AlmaLinux/Rocky Linux
journalctl -u sshd -n 50 --no-pagerЧастая причина падения — синтаксическая ошибка в /etc/ssh/sshd_config после ручного редактирования; проверить конфигурацию без перезапуска можно командой sudo sshd -t (она же используется в статье «Усиление SSH»).
✅ Готово: systemctl status показывает active (running), а ss -tlnp — sshd на нужном порту. Возвращайтесь к обычному SSH-клиенту на своём компьютере и пробуйте подключиться снова.
Шаг 6. Проверьте, не забанен ли ваш IP в fail2ban
Если недавно было несколько неудачных попыток входа подряд (например, вы сами ошиблись паролем, или к вашему IP-адресу через NAT привязаны другие устройства) — fail2ban мог забанить его автоматически.
Попасть на сервер, чтобы это проверить, можно через консоль VNC (Шаг 2) — она не идёт через сетевой стек и файрвол сервера, поэтому бан fail2ban на неё не действует. Либо подключитесь по SSH с другого IP-адреса (например, с мобильного интернета), если он у вас есть.
Проверьте статус jail'а sshd:
sudo fail2ban-client status sshdЕсли ваш IP есть в Banned IP list — снимите бан (замените 203.0.113.10 на свой адрес):
sudo fail2ban-client set sshd unbanip 203.0.113.10ℹ️ Совет: если fail2ban на сервере вообще не установлен — эту причину можно сразу исключить. Подробный разбор установки, настройки и разбана — в статье «Fail2ban: защита от брутфорса».
Шаг 7. Разберитесь с аутентификацией: ключ или пароль
Раз соединение дошло до этого этапа — сеть, файрвол и сама служба sshd уже ни при чём, остаются только учётные данные:
- `Permission denied (publickey,password)` — сервер принимает и ключ, и пароль, но ни один из тех, что вы предоставили, не подошёл.
- `Permission denied (publickey)` — сервер принимает только ключ (пароль отключён —
PasswordAuthentication no); без нужного ключа вход не получится, сколько бы раз вы ни вводили пароль.
Пароль. Убедитесь, что вводите пароль именно от учётной записи на сервере (root или ваш sudo-пользователь), а не пароль от панели VMmanager 6 или личного кабинета my.forestsnet.cloud — это разные пароли. Забыли пароль root — смените его в VMmanager 6: карточка сервера → «⋮» → «Изменить пароль».
Не тот ключ. Если на компьютере несколько SSH-ключей, клиент может предложить не тот. Укажите нужный явно:
ssh -i ~/.ssh/id_ed25519 [email protected]Ключа нет на сервере. Через консоль VNC (Шаг 2) проверьте, что открытый ключ действительно записан на сервере:
cat ~/.ssh/authorized_keysСверьте построчно с ключом на своём компьютере (cat ~/.ssh/id_ed25519.pub). Если нужной строки нет — допишите её (см. шаг 2 статьи «Усиление SSH» — там разобрано и через ssh-copy-id, и вручную).
Права доступа. SSH придирчив к правам на файлы — и на сервере, и на клиенте: ~/.ssh должен быть 700, authorized_keys — 600 на сервере, приватный ключ на своём компьютере — тоже 600. Слишком открытые права — частая причина молчаливого отказа именно по ключу:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keysПароль отключён на сервере. Если рабочего ключа нет, а сервер отвечает Permission denied (publickey) без password в списке — вход по паролю на нём отключён (PasswordAuthentication no, см. статью «Усиление SSH») и не сработает, сколько угодно попыток. Временно верните его через консоль VNC (Шаг 2):
sudo nano /etc/ssh/sshd_configНайдите строку PasswordAuthentication no и замените на PasswordAuthentication yes, сохраните файл и перезапустите службу (команды — в Шаге 5 этой статьи). После этого зайдите по паролю и настройте ключ заново.
⚠️ Важно: не забудьте вернуть PasswordAuthentication no обратно, когда ключ снова заработает, — иначе вы сводите на нет усиление SSH, сделанное ранее.
✅ Готово: если один из пунктов подтвердился и вы его исправили — подключение должно пройти. Если нет — повторите Шаг 1 с флагом ssh -vvv, чтобы увидеть точное место отказа, и при необходимости обратитесь в поддержку ForestsNet Cloud.
Что дальше
Как только доступ восстановлен, стоит снизить риск повторения: настройте вход по ключу и отключите пароль — статья «Усиление SSH»; защитите порт файрволом, если этого ещё не сделали, — «Настройка файрвола UFW»; добавьте автоматический бан за перебор пароля — «Fail2ban: защита от брутфорса». Общий чек-лист по остальным базовым настройкам безопасности — в статье «Чеклист базовой защиты VPS».