Couldn resolve host name linux

Quick Fix: SSH could not resolve hostname

SSH is the secure transmission network protocol that transfers the data files from one device to another (between local or remote servers) securely. This requires the correct hostname and IP address on both devices (client and server side) to create a secure SSH connection. The SSH hostname error occurs if the SSH credentials are not authenticated for the client and local server.

This post will provide all the reasons and possible solutions to fix the error. The content addressed in this post is:

  • Reason 1: Hostname is not Configured Correctly
  • Solution: Use the Correct SSH Hostname
  • Reason 2: Hosts File is not Configured
  • Solution: Configure /etc/hosts File

Let’s describe the causes and solutions for the SSH error.

Reason 1: Hostname is not Configured Correctly

SSH could not resolve hostname occurs when the hostname or ip address is incorrect like the hostname has extra space or some typing error while writing the hostname or ip address. For instance, when you write the incorrect hostname, the below error shows up:

This error can be removed using the two solutions described below.

Solution: Use the Correct SSH Hostname

The error for using the SSH protocol that the hostname can not be resolved can be removed using the correct hostname and ip address. The correct syntax of connecting an SSH connection is provided below:

The IP-address can be found using “ip addr” command and hostname using the “hostname” command. For instance, to create an SSH connection with a server having username “itslinuxfoss” and ip address “192.168.18.18”, use the below command:

The SSH connection is successfully established.

Reason 2: Hosts File is not Configured

This error can occur if the hosts file is not configured or the hosts file is pointing toward the wrong SSH address. We can fix the SSH hostname could not be resolved error by manually adding the correct hostname and ip address in the “/etc/hosts” file.

Solution: Configure /etc/hosts File

Follow these steps to configure the host’s configuration file:

Open the system hosts configuration /etc/hosts in nano editor by using:

The above interface for the /etc/hosts file will open up, showing the hosts already exist in the system.

Add an entry for your desired IP address, and hostname in the /etc/hosts opened file, whose syntax is provided below:

For instance, to create an SSH connection with the remote server having IP address “192.168.227.132” and username “itslinuxfoss”, add the below information in the /etc/hosts file:

$ 192.168.227.132 itslinuxfoss

After adding the remote user’s IP address and username, press the “Ctrl + O” to save the file changes. Keeping the same file name, press “Enter” and “Ctrl + X” to quit.

Читайте также:  How to find files on linux

Create the SSH connection with the added remote server to verify the SSH connection is created using this command (Replace itslinuxfoss with your desired username):

Note: Enter “yes” to confirm creating the connection and enter the remote server password when asked.

The output shows the local server is successfully connected to the remote server (itslinuxfoss) via SSH.

Conclusion

The SSH could not resolve the hostname error that occurs if the hostname and ip address of local and client servers are incorrect. To fix the SSH hostname error, enter the correct server credentials or add the correct SSH entry in the “/etc/hosts” file as described in this guide.

Источник

Ошибка sudo unable to resolve host

Некоторые пользователи сталкиваются с ошибкой «sudo unable to resolve host». Обычно, эта ошибка появляется после смены имени компьютера. Это простая проблема, которую можно быстро решить.

В этой статье мы рассмотрим, почему возникает эта ошибка, что она означает, а также как её решить на примере Ubuntu.

Что значит sudo unable to resolve host

Сообщение «unable to resolve host имя_хоста» означает, что утилита не может определить IP-адрес хоста «имя_хоста«. Казалось бы, sudo — это локальная команда для повышения привилегий в системе, и ей незачем определять IP хостов. Но это не совсем так: sudo может использоваться и удалёнными пользователями, например, подключёнными по SSH, а в самом конфигурационном файле /etc/sudoers уровни доступа различных пользователей настраиваются такой строчкой:

пользователь хост = ( другой_пользователь : группа ) команды

Подробнее про строку настройки читайте в статье настройка sudo в linux. А сейчас нам интересно, что для каждого запроса утилите нужно определить, какой хост используется на данном компьютере.

Если кратко, то основная идея разработчиков состоит в том, что один универсальный файл /etc/sudoers будет использоваться на множестве компьютеров и на каждом из них нужно определить, какие правила предназначены для него. Таким образом, переменная host в sudoers влияет только на локальные правила.

А теперь вернёмся к нашей ошибке. Как я уже сказал, она означает, что утилита не может определить IP-адрес «имени хоста». Для домена сайта это означало бы, что такой записи нет в DNS. Но поскольку это имя нашего локального компьютера, то вполне естественно, что его нет в глобальной сети.

Как исправить ошибку

1. Решение проблемы в /etc/hosts

Чтобы исправить ошибку, мы можем добавить такую DNS-запись локально в файл /etc/hosts. Поскольку sudo у вас не работает, а этот файл можно редактировать только от суперпользователя, то эта простая задача становится сложнее. Сначала смотрим наше текущее имя хоста:

Дальше, если у вас установлен пароль root, вы можете авторизоваться от его имени с помощью su:

А затем добавить такую строчку в /etc/hosts:

Слова «имя_хоста» надо заменить на то имя хоста, которое вы получили с помощью команды hostname. После этого надо перезапустить компьютер или просто перезапустить сеть:

sudo systemctl restart networking

Ещё желательно убедиться, что в системной службе разрешения доменных имён включено использование файла /hosts. Откройте /etc/nsswitch.conf и найдите в строке hosts слово «files». Оно должно быть на первом месте. Если нет, перенесите его на первое место.

Читайте также:  Скопировать файлы linux через терминал

Если же у вас пароль для root не установлен, вам нужно загрузиться с LiveCD, примонтировать корневую файловую систему в /mnt/ и исправлять ошибку уже там.

2. Решение с помощью systemd

Есть ещё один путь. В попытках воспроизвести эту проблему в своей Ubuntu 18.04 я обнаружил, что разрешением доменных имён для локальных приложений занимается служба systemd-resolved. Если она запущена, то даже если в файле /etc/hosts нет имени вашего компьютера, всё будет работать. Поэтому, если вы случайно отключили эту службу, верните её на место и всё заработает:

sudo systemctl start systemd-resolved
sudo systemctl enable systemd-resolved

Выводы

В этой статье мы разобрали, как справиться с ошибкой «sudo cannot to resolve host». Как видите, всё достаточно логично и просто. Если у вас остались вопросы, спрашивайте в комментариях!

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

Unable to resolve host : Name or service not known (Linux)

The error/warning defined in the subject of this article usually can be shown while using, for example, the apt-get tool on Ubuntu/Debian Linux distribution. This could happen after we have (finally) decided to change the hostname of our Linux system giving it a better name. Let’s say that wow it’s called test-server because that is we will use it for. Now, a common scenario would be that, after creating a sudo user because we do not prefer not to be root all the time, we start using commands with sudo, but at some point we see a strange error in the output of the commands:

unable to resolve host : Name or service not known

The command run with sudo without any problem but this error message will be displayed anyway.

The Fix

The root cause of the error is actually related to the hostname changing. Let’s now show how to fix this unable to resolve hostname error. First, check the hostname of your system with hostname command. For example, let’s say that the hostname is test-server.

The hostname is taken from /etc/hostname file.

cat /etc/hostname test-server

The same hostname should be listed in the /etc/hosts file as well. But in our case (and basically in all the cases in which this error appears) the new hostname will miss in the /etc/hosts file as you can see in the output below:

127.0.0.1 localhost The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts

Since it is missing from here, the system is not able to figure out the hostname and thus it throws the error sudo: unable to resolve host or unable to resolve host : Name or service not known while using apt-get.

To fix this, edit this file and add a new line and set the loopback address with the new hostname (or just replace the old hostname with the new one). You can use Vim or Nano to edit files in command line.

Читайте также:  Как посмотреть характеристики на линуксе

So now, our /etc/hosts file looks like this:

127.0.0.1 localhost 127.0.0.1 test-server The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts

Again, if the old hostname is still present anywhere in your /etc/hosts file, you should replace them with the new hostname (it is recommended).

Immediately after adding the above mentioned line, sudo: unable to resolve host or unable to resolve host : Name or service not known errors will disappear.

Источник

Sudo: unable to resolve host explained

Unable to resolve host explained.

Sometimes you encounter an error “sudo unable to resolve host”. Usually, this error occurs after changing the hostname of your system. The hostname is the name of your device that the network identifies with. The hostname is stored locally in the file “/etc/hostname”. It is mapped to the network for communication. This is not a big problem and can be solve it easily.

In this tutorial, we will show you how to resolve “sudo unable to resolve host” error.

Identify the Error

Before starting, we need to identify the actual error with a hostname.

First, check the hostname of your system by running the following command:

You should see the following output:

The above output indicates that the hostname is already setup with your system.

Next, run the following command to reproduce the error:

You should see the following screen:

Sudo: unable to resolve host explained

As you can see, the message “sudo: unable to resolve host newpc” indicates that the hostname command cannot determine the IP address of host “newpc”

In simple terms, the hostname command cannot resolve the hostname of your system. Since this a local computer and there is no such record in the DNS.

Fix the Error

In order to fix the error, we will need to add the DNS record locally in your system. The local DNS record is stored in the /etc/hosts file.

First, login to root user with the following command:

Next, see the content of the /etc/hosts file using the following command:

You should see the following screen:

Print /etc/hosts file content using cat command.

As you can see, there is no such record of your hostname (newpc). Since the hostname is missing and your system is not able to figure out the hostname and thus it throws the error ‘sudo: unable to resolve host’.

To fix this error, edit the /etc/hosts file and set the hostname (newpc) with a loopback address (127.0.0.1).

Add the line “127.0.0.1 newpc” as shown below:

Edit /etc/hosts file content using nano test file editor.

Save and close the file when you are finished. Then, test whether the error is resolved or not with the following command:

You should see the following screen:

Sudo command without Sudo: unable to resolve host error.

As you can see the error “sudo: unable to resolve host” disappeared.

Note : If the old hostname is present in the /etc/hosts file then just replace them with the new hostname.

Conclusion

In the above guide, we learned how to resolve “sudo: unable to resolve host” error in Linux. I hope you have now enough understanding of how hostname and /etc/hosts file works.

This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License

Источник

Оцените статью
Adblock
detector