Исправлено: ошибка SSH «не удалось разрешить сервер имени хоста»



Попробуйте наш инструмент устранения неполадок

Иногда вы видите ошибку, сообщающую, что ssh не может разрешить имя хоста, когда вы пытаетесь его использовать. Если вы получаете эту ошибку, то сначала убедитесь, что вы подключены к сети. Пользователи любого типа беспроводной сети также захотят убедиться, что они получают достаточно сигнала для выполнения запроса. По мнению многих разработчиков, отсутствие подключения является наиболее частой причиной этих ошибок. Это даже чаще, чем опечатки.



Если вы уверены, что у вас надежное соединение, вам следует в следующий раз проверить наличие опечаток. Возможно, вы ошиблись при вводе IP-адреса или какой-либо строки указателя ресурсов. Хотя это может показаться придирчивым к способу представления информации, программное обеспечение ssh хочет быть уверенным, что вы всегда подключаетесь к нужному ресурсу. Кроме того, ваш файл hosts может в конечном итоге указать ssh в неверном направлении относительно ресурса, к которому вы пытаетесь подключиться.



Метод 1. Устранение искаженных команд имени хоста

Предполагая, что вы не совершили ошибку, например, набрали s sh или ss h вместо ssh, возможно, вы неправильно сформировали команду hostname. Программное обеспечение ожидает команды, заданные как ssh user @ NAME вместо какого-либо другого формата. Откройте терминал с соответствующими привилегиями для вашей команды. Как правило, при использовании ssh вы сможете работать как обычный пользователь, и вам не потребуются права суперпользователя.



Вы можете открыть терминал, одновременно удерживая Ctrl, Alt и T. Некоторые пользователи Xfce4 могут, удерживая клавишу Windows или Super, нажать T. Вы можете запустить запрос из меню Dash, Applications, KDE или Whisker, перейдя к поиску и набрав Terminal или выбрав его из системных инструментов. Пользователи Ubuntu Server или версий Red Hat Enterprise Linux и Scientific Linux, не имеющих графического пользовательского интерфейса, должны удерживать Ctrl, Alt и F1-F6 для доступа к виртуальной консоли. Вам нужно будет войти в систему, прежде чем продолжить.

Как только вы увидите приглашение, введите свой ssh-код и убедитесь, что он в предыдущем формате. Например, вы можете попробовать ssh root @ myPlace, если у вас есть имя хоста, подключенное к вашей сети как таковое. Команда ssh root@##.#.#.##, заменившая символы восьмиугольника числами, является хорошей идеей, если вы подключаетесь напрямую к IP-адресу.



Вы можете обнаружить, что пишете root @ server или что-то подобное, что может выдать следующую ошибку:

ssh: не удалось разрешить имя хоста server: имя или служба неизвестны

Некоторые пользователи имеют привычку напоминать себе, что ssh user @ server - это способ, которым вам всегда нужно писать эту команду.

Метод 2: исправление файл

Любое повреждение file также может вызвать проблемы с именем хоста, а ssh иногда предлагает те же предупреждения для этих типов ошибок, что и для чего-либо еще. Вам понадобится root-доступ, чтобы открыть файл hosts. Если вы работаете над одним из указанных выше терминалов, вы можете ввести судо нано или же
, чтобы открыть файл для редактирования. Приглашение sudo запросит ваш пароль.

Если вы работаете из среды рабочего стола, вам нужно открыть строку приложения. Вы можете сделать это, удерживая клавиши Windows или Super и R, нажав Alt и F2 или щелкнув тире в зависимости от того, какую среду рабочего стола вы используете. Когда у вас есть линия, введите в зависимости от того, используете ли вы приложения на основе GTK + или KDE, Qt. Вы можете использовать gvim, листовую панель или коврик для мыши вместо gedit или kate.

В любом случае вы загрузите файл hosts. Убедитесь, что у вас есть права на чтение и запись, затем посмотрите на верхнюю часть файла. Для правильной работы вам потребуются следующие две строки:

127.0.0.1 локальный

127.0.1.1 YourHostName

YourHostName должен содержать фактическое имя хоста вашего компьютера. Они также могут понадобиться, если вы работаете в сети IPv6:

:: 1 ip6-localhost ip6-loopback

fe00 :: 0 ip6-локальная сеть

ff00 :: 0 ip6-mcastprefix

ff02 :: 1 ip6-все узлы

ff02 :: 2 ip6-allrouters

Если вы находитесь в какой-то сети, которая использует только технологию IPv4, то в большинстве случаев вам нужно будет правильно установить только первые два. Однако современные возможности подключения к Интернету быстро переходят к стандарту IPv6, поэтому времена, когда они устанавливались в одиночку, быстро исчезают. Ваш дистрибутив Linux должен был настроить эти параметры за вас, но иногда ошибочный пакет или просто ошибки пользователя могут повредить файл hosts и указать соединения в неправильном месте.

Если вы используете графический текстовый редактор, который читает в строке заголовка, вы не можете его сохранить и неправильно использовали gksu или kdesu. В качестве альтернативы вы можете обнаружить, что у вас есть другие строки после ff02 :: 2 ip6-allrouters, которые вам не нужно трогать, если они не имеют никакого отношения к любому из этих других кодов. Это часть других назначений, и их может быть довольно много, если вы работаете в системе, где файл hosts использовался для блокировки доступа пользователей к какому-либо конкретному сайту. Однако вам нужно будет закомментировать повторяющиеся строки, что можно сделать, добавив символ # в их начало. Каждая из предыдущих строк должна встречаться только один раз, и вы не хотите иметь несколько назначений для любого из заданных имен. Это заставит ssh и все другие сетевые программы просто взять последнее назначение, что может быть неправильным.

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

4 минуты на чтение