SSH Linux, OpenSSH client/server

Подключение по SSH работает по IP, но не по имени

  • Обновлено
  • Чтение ≈ 3 минуты

Краткий ответ

SSH работает при подключении напрямую к IP-адресу, но ошибается при имени узла. Причина обычно в DNS, неверном алиасе клиента, записи IPv6 или адресе в known_hosts.

В этой статье
  1. Как распознать проблему и где применимы действия
  2. Возможные причины и диагностические признаки
  3. Пошаговая диагностика и исправление
  4. Как проверить, что проблема действительно устранена
  5. Если результат не получен

#Как распознать проблему и где применимы действия

SSH работает при подключении напрямую к IP-адресу, но ошибается при имени узла. Причина обычно в DNS, неверном алиасе клиента, записи IPv6 или адресе в known_hosts. Перед выполнением определите название программы, редакцию Linux и управляющий сервис. Значения примеров в командах не являются готовой конфигурацией вашего устройства.

#Возможные причины и диагностические признаки

Возможная причинаКак узнатьЧто делать
Не разрешается имяgetent не возвращает IP либо ssh пишет Could not resolve hostnameИсправить DNS, адрес и поиск по домену
Имя указывает не на тот серверssh -G и getent показывают неожиданный адресСверить DNS A/AAAA и ~/.ssh/config
Проблема только при IPv6Имя содержит AAAA, но маршрута IPv6 нетПроверить -4 как диагностический обход, затем исправить IPv6

#Пошаговая диагностика и исправление

  1. Шаг 1. Зафиксируйте вывод при подключении по имениКоманда выполняется на клиенте. Посмотрите Connecting to ... [адрес] и точную ошибку. Не меняйте known_hosts при несоответствии ключа, пока не подтвердите сервер через независимый канал.
  2. Терминал Linux на сервере/клиенте, указанном в шаге
    Linux · Терминал (Bash)Команда
    Терминал Linux на сервере/клиенте, указанном в шаге. Обычно достаточно прав пользователя; имя.service, пути, адрес server.example.org, имена пользователей и другие демонстрационные значения необходимо заменить фактическими. После команды сравните результат с описанием шага; при ошибке остановитесь и выясните её причину.
    ssh -vv -o ConnectTimeout=8 пользователь@server.example.org
  1. Терминал Linux на сервере/клиенте, указанном в шаге
    Linux · Терминал (Bash)Команда
    Терминал Linux на сервере/клиенте, указанном в шаге. Обычно достаточно прав пользователя; имя.service, пути, адрес server.example.org, имена пользователей и другие демонстрационные значения необходимо заменить фактическими. После команды сравните результат с описанием шага; при ошибке остановитесь и выясните её причину.
    getent ahosts server.example.org
  2. Шаг 2. Проверьте результат DNS через системуgetent ahosts использует привычный системе механизм разрешения имён. Если адрес пуст, исправляйте DNS и имя сервера, а не sshd_config.
  1. Шаг 3. Проверьте применяемые настройки SSHssh -G показывает hostname, port, user и proxyjump из клиентской конфигурации. Если там другое имя, исправьте алиас в ~/.ssh/config, а не публичный DNS.
  2. Терминал Linux на сервере/клиенте, указанном в шаге
    Linux · Терминал (Bash)Команда
    Терминал Linux на сервере/клиенте, указанном в шаге. Обычно достаточно прав пользователя; имя.service, пути, адрес server.example.org, имена пользователей и другие демонстрационные значения необходимо заменить фактическими. После команды сравните результат с описанием шага; при ошибке остановитесь и выясните её причину.
    ssh -G server.example.org | grep -Ei '^(hostname|port|user|proxyjump) '
  1. Шаг 4. Сравните IPv4 и IPv6На клиенте принудительно проверьте только IPv4. Если -4 работает, а обычная команда зависает, диагностику продолжайте с AAAA/IPv6-маршрутом; не удаляйте AAAA запись без подтверждения владельца домена.
  2. Терминал Linux на сервере/клиенте, указанном в шаге
    Linux · Терминал (Bash)Команда
    Терминал Linux на сервере/клиенте, указанном в шаге. Обычно достаточно прав пользователя; имя.service, пути, адрес server.example.org, имена пользователей и другие демонстрационные значения необходимо заменить фактическими. После команды сравните результат с описанием шага; при ошибке остановитесь и выясните её причину.
    ssh -4 -o ConnectTimeout=8 пользователь@server.example.org
  1. Шаг 5. Проверьте сетевые адреса интерфейсаКоманда показывает маршруты клиента, полезно если IPv6 выбран, но шлюза нет. Наличие маршрута не гарантирует, что сервер доступен на другом конце.
  2. Терминал Linux на сервере/клиенте, указанном в шаге
    Linux · Терминал (Bash)Команда
    Терминал Linux на сервере/клиенте, указанном в шаге. Обычно достаточно прав пользователя; имя.service, пути, адрес server.example.org, имена пользователей и другие демонстрационные значения необходимо заменить фактическими. После команды сравните результат с описанием шага; при ошибке остановитесь и выясните её причину.
    ip -4 route
    ip -6 route
  1. Шаг 6. Проверьте клиентские правила именованияЕсли IP и DNS совпадают, а ssh использует не тот адрес, просмотрите /etc/hosts и ~/.ssh/config. Не копируйте найденные строки в публичный чат, они могут содержать внутренние IP и имена.
  2. Терминал Linux на сервере/клиенте, указанном в шаге
    Linux · Терминал (Bash)Команда
    Терминал Linux на сервере/клиенте, указанном в шаге. Обычно достаточно прав пользователя; имя.service, пути, адрес server.example.org, имена пользователей и другие демонстрационные значения необходимо заменить фактическими. После команды сравните результат с описанием шага; при ошибке остановитесь и выясните её причину.
    grep -n 'server.example.org' /etc/hosts ~/.ssh/config 2>/dev/null || true

#Как проверить, что проблема действительно устранена

После исправления повторите вход по имени и сравните IP из ssh -vv с ожидаемым. Если возникает Host key verification failed, сначала независимо подтвердите отпечаток сервера, не удаляйте known_hosts автоматически.

#Если результат не получен

Вернитесь к самому раннему отличающемуся результату диагностики и проверьте точный текст ошибки, текущую загрузку и фактическую версию программы. Не повторяйте опасную команду с другими правами наугад. Если это рабочий сервер, передайте администратору обезличенные отрывки журнала за момент сбоя и уже выполненные действия.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.