Подробный гайд: что делать если ALT Linux 8 не подключается по SSH?

Пошаговая инструкция по диагностике и устранению проблем подключения SSH в ALT Linux 8. Проверка сети, службы, файрвола, логов и настроек аутентификации.

2026.05.14                  


Подробный гайд: что делать если ALT Linux 8 не подключается по SSH?Подробный гайд: что делать если ALT Linux 8 не подключается по SSH?

Важно:

Все команды выполняются от root или через sudo.

Перед изменением конфигов SSH создайте резервную копию:

cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

1. Быстрая диагностика (чек-лист)

Симптом Вероятная причина
Connection refused Сервис sshd не запущен или слушает другой порт
Connection timed out Брандмауэр, отсутствие маршрута, сетевая проблема
Permission denied (publickey,password) Ошибка аутентификации, отключён пароль/ключ, PAM/ACL
Connection closed by authenticating user Слишком много попыток, бан fail2ban, ошибка в конфиге

2. Проверка сетевой доступности

# 1. Проверьте, отвечает ли хост
ping -c 4 <IP_АДРЕС>

# 2. Проверьте, открыт ли порт 22 (или ваш кастомный)
nc -zv <IP_АДРЕС> 22
# или
telnet <IP_АДРЕС> 22

# 3. Убедитесь, что интерфейс активен и имеет IP
ip a show
ip route show

Если ping не проходит — проблема в сети, VLAN, маршрутизации или хост выключен.
Если ping есть, но порт закрыт — проблема в sshd или брандмауэре (переходите к разделам 3-4).


3. Проверка и запуск SSH-сервера

# Статус сервиса
systemctl status sshd

# Если сервис не запущен или отключён
systemctl start sshd
systemctl enable sshd

# Проверка установки пакета
rpm -q openssh-server
# Если отсутствует:
apt-get install openssh-server

Проверка синтаксиса конфига (обязательно перед рестартом):

sshd -t
# Если вывод пустой — конфиг валиден. Если ошибка — исправьте строку, указанную в выводе.

4. Проверка /etc/ssh/sshd_config

Откройте конфиг:

nano /etc/ssh/sshd_config

Проверьте ключевые директивы:

Port 22                          # Убедитесь, что порт совпадает с тем, на который подключаетесь
ListenAddress 0.0.0.0            # 0.0.0.0 = все интерфейсы. Если указан конкретный IP, проверьте его
PermitRootLogin prohibit-password # или yes (для отладки)
PasswordAuthentication yes       # Если подключаетесь по паролю
PubkeyAuthentication yes         # Если по ключу
UsePAM yes                       # Стандартно для ALT Linux

После правок:

systemctl restart sshd

5. Брандмауэр (firewalld / iptables)

ALT Linux 8 по умолчанию использует firewalld.

# Статус и правила
firewall-cmd --state
firewall-cmd --list-all

# Разрешение SSH
firewall-cmd --add-service=ssh --permanent
firewall-cmd --reload

# Проверка после применения
firewall-cmd --query-service=ssh

Если используется iptables напрямую:

iptables -L INPUT -n --line-numbers
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
service iptables save  # или iptables-save > /etc/sysconfig/iptables

6. Анализ логов

# Логи службы sshd в реальном времени
journalctl -u sshd -f

# Логи за последний час
journalctl -u sshd --since "1 hour ago"

# Классические логи аутентификации (RPM-системы)
tail -f /var/log/secure
# или
grep sshd /var/log/messages

Расшифровка частых записей:

Запись в логе Значение
Failed password for Неверный пароль/логин
Connection closed by authenticating user Превышен MaxAuthTries или сработал fail2ban
fatal: /etc/ssh/sshd_config: line X: Bad configuration option Ошибка в конфиге
error: Could not load host key Отсутствуют ключи хоста — выполните ssh-keygen -A

7. Аутентификация и права

Если вход по ключу:

# На сервере (в домашней каталоге пользователя)
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chown -R $(whoami):$(whoami) ~/.ssh

# Проверка, включён ли путь к authorized_keys в sshd_config:
grep AuthorizedKeysFile /etc/ssh/sshd_config

Если вход по паролю:

  • Убедитесь, что у пользователя установлен пароль: passwd username
  • Проверьте PAM: grep -i password /etc/pam.d/sshd (обычно трогать не нужно)

8. Диагностика со стороны клиента

Запустите подключение с максимальной отладкой:

ssh -vvv -p 22 user@<IP_АДРЕС>

Что смотреть в выводе:

  • debug1: Connecting to ... — сетевой этап
  • debug1: Remote protocol version ... — сервер ответил
  • debug1: Authentications that can continue: — какие методы предлагает сервер
  • debug3: send packet: type 50 — этап ввода пароля/ключа

Частые клиентские причины:

  • Сохранённый старый ключ в ~/.ssh/known_hosts — удалите строку с IP: ssh-keygen -R <IP>
  • Использование PuTTY/WinSCP с неверным форматом ключа — конвертируйте через puttygen
  • NAT блокирует порт — проверьте маршрутизацию

9. Таблица типичных ошибок и решений

Ошибка Решение
Connection refused systemctl status sshd, sshd -t, проверка Port в конфиге
Connection timed out firewall-cmd --add-service=ssh, проверка маршрутов, iptables -F (временно)
Permission denied (publickey) Проверьте права ~/.ssh, содержимое authorized_keys, PubkeyAuthentication yes
Too many authentication failures Добавьте -o IdentitiesOnly=yes к клиентской команде
Host key verification failed ssh-keygen -R <IP>, проверьте, не изменился ли IP у хоста
No supported authentication methods Включите PasswordAuthentication yes или настройте ключи

10. Рекомендации по безопасности (после восстановления доступа)

  1. Отключите вход root по паролю: PermitRootLogin prohibit-password
  2. Используйте только аутентификацию по ключам: PasswordAuthentication no
  3. Смените стандартный порт (опционально): Port 2222 + откройте его в firewall
  4. Установите fail2ban: apt-get install fail2ban, включите jail для sshd
  5. Регулярно обновляйте: apt-get update && apt-get upgrade

Финальная проверка

# 1. Сервис активен
systemctl is-active sshd

# 2. Порт слушается
ss -tlnp | grep :22

# 3. Брандмауэр пропускает
firewall-cmd --query-service=ssh

# 4. Тест локально (с сервера на себя)
ssh -vvv localhost