Ubuntu: Error message when I run sudo: unable to resolve host (none)


I have this issue on AWS on some servers. Whenever I run sudo the terminal is stuck doing seemingly nothing, until it finally spits out this error message. My terminal looks like this:

ubuntu@(none):~$ sudo true  sudo: unable to resolve host (none)  

What can I do to solve it?


Two things to check (assuming your machine is called my-machine, you can change this as appropriate):

  1. That the /etc/hostname file contains just the name of the machine.

  2. That /etc/hosts has an entry for localhost. It should have something like:    localhost.localdomain localhost    my-machine  

If either of these files aren't correct (since you can't sudo), you may have to reboot the machine into recovery mode and make the modifications, then reboot to your usual environment.


Edit /etc/hosts and append your new hostname to the line (or create a new line if you prefer that).

Mine looks like:       localhost localhost.localdomain penguin    # 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  

Replace penguin in the above example by your new hostname as stated in the /etc/hostname file.


Note, this is an answer to this question which has been merged with this one.

Your hostname (dave00-G31M-ES2L) is not represented in /etc/hosts. Add an L to this line:   dave00-G31M-ES2  

So it becomes:   dave00-G31M-ES2L  

In order to accomplish this, open a console (press Ctrl+Alt+T) and type:

sudo gedit /etc/hosts  

Add the letter L as mentioned, save and exit.


I had this issue when I was using ubuntu on a VPS. I solved it editing /etc/hosts file.

run this command:

sudo nano /etc/hosts  

and then add:   localhost.localdomain localhost   ubuntu  

I hope that will solve your issue :)

PS: Remember to reboot your computer!


Add your hostname to /etc/hosts like so:

echo $(hostname -I | cut -d\  -f1) $(hostname) | sudo tee -a /etc/hosts  


I was having the same issue even though the hostname in my /etc/hostname file and /etc/hosts file matched.

My hostname was "staging_1". It turns out that you can't have an underscore in your hostname, which is why I was getting this error. Changing the underscore to a hyphen fixed my problem.


In AWS, go to your vpc and turn on "DNS Hostnames".


In my case it was the problem, I changed the hostname to man because I wanted to know if there are some parameters you can use on hostname. Instead it changed my hostname to man and I always got the same message like you

sudo: unable to resolve host (none)  

after changing the hostname back to `localhost everything worked fine again

hostname localhost  


I encountered this same error message. I think this discussion thread at AWS Developer Forums is a better solution:

"Go the the VPC management console, select the VPC, click on Actions, select Edit DNS Hostnames and select Yes."



Some terminal emulators will not update prompt with the correct hostname until you close and restart the emulator (lxterminal, I'm talking to you).

I spent 30min fighting with this error after editing my hostname and hosts files and running sudo service hostname restart until I ran sudo hostname and saw that the hostname was the new value, even though the prompt was showning the old value.


Sorry I can't help you much but, since it says "can't resolve host" try running:


And see if the output is the hostname of the machine. If not, the problem is the host configuration, not sudo.


OP wrote:

It was all in /etc/hostname. On two of our sick servers it looked like this:

ubuntu@(none):~$ cat /etc/hostname  linux-web-n ip-10-128-##-##  

While on a server without this issue we had:

ubuntu@ip-10-128-##-###:~$ cat /etc/hostname  ip-10-128-##-###  

Removed the linux-web-n portion, rebooted and everything was fine.


you might be getting an error if your hosts or hostname file contain illegal characters. Only these symbols are permitted: a-z, A-Z, 0-9


I had the same problem. I solved it by editing the /etc/hosts and /etc/hostname files... on the /etc/hosts file, just edit the top part as shown below.

#vi /etc/hosts   localhost   localhost  myhostname          #vi /etc/hostname      myhostname  


if you can't sudo you CAN log in as root via su. IE: su root (in an x-term). then give the root password when prompted, then you can edit the files with nano. The root password in 'buntu is the same as the password you would use for sudo.


I had this same problem! I changed my VPS's name through the online admin control panel which did not change the machine name in the hosts file All I did was run:

sudo nano /etc/hosts  

Then I edited it from this: Megabyte Megabyte localhost  

To this: Debian Debian localhost  

and that fixed my error! Hope this helped!


If you are using Vagrant, then login into the guest and run apt-get --no-install-recommends install virtualbox-guest-utils

Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Next Post »