web-dev-qa-db-fra.com

Message d'erreur "Sudo: impossible de résoudre l'hôte (aucun)"

Lorsque j'exécute Sudo, le terminal reste bloqué pendant quelques secondes, puis envoie un message d'erreur. Mon terminal ressemble à ceci:

ubuntu@(none):~$ Sudo true
Sudo: unable to resolve Host (none)

Que puis-je faire pour le résoudre?

710
Kit Sunde

Deux choses à vérifier (en supposant que votre machine s'appelle my-machine, vous pouvez la changer si nécessaire):

  1. Le fichier /etc/hostname ne contient que le nom de la machine.

  2. Ce /etc/hosts a une entrée pour localhost. Il devrait avoir quelque chose comme:

     127.0.0.1 localhost.localdomain localhost 
     127.0.1.1 ma-machine 
    

Si l’un ou l’autre de ces fichiers n’est pas correct (car vous ne pouvez pas utiliser Sudo), vous devrez peut-être redémarrer la machine en mode de récupération et effectuer les modifications, puis redémarrer dans votre environnement habituel.

962
Jeremy Kerr

Edit/etc/hosts et ajoutez votre nouveau nom d’hôte à la ligne 127.0.0.1 (ou créez une nouvelle ligne si vous préférez).

Le mien ressemble à:

127.0.0.1       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

Dans l'exemple ci-dessus, remplacez penguin par votre nouveau nom d'hôte, comme indiqué dans le fichier /etc/hostname.

188
Lekensteyn

Ajoutez votre nom d’hôte à /etc/hosts comme ceci:

echo $(hostname -I | cut -d\  -f1) $(hostname) | Sudo tee -a /etc/hosts
64
Collin Anderson

Notez que ceci est une réponse à cette question qui a été fusionnée avec celle-ci.

Votre nom d'hôte (dave00-G31M-ES2L) n'est pas représenté dans /etc/hosts. Ajoutez un L à cette ligne:

127.0.1.1   dave00-G31M-ES2

Alors ça devient:

127.0.1.1   dave00-G31M-ES2L

Pour ce faire, ouvrez une console (appuyez sur Ctrl+Alt+T) et type:

Sudo gedit /etc/hosts

Ajoutez la lettre L comme indiqué, enregistrez et quittez.

31
Thor

J'ai eu ce problème quand j'utilisais Ubuntu sur un VPS. Je l'ai résolu en modifiant le fichier/etc/hosts.

lancez cette commande:

Sudo nano /etc/hosts

puis ajoutez:

127.0.0.1   localhost.localdomain localhost
127.0.1.1   ubuntu

J'espère que cela résoudra votre problème :)

PS: N'oubliez pas de redémarrer votre ordinateur!

16
Luca D'Amico

J'avais le même problème même si le nom d'hôte de mon fichier/etc/hostname et de mon fichier/etc/hosts correspondait.

Mon nom d'hôte était "staging_1". Il s'avère que vous ne pouvez pas avoir de trait de soulignement dans votre nom d'hôte, c'est pourquoi j'ai eu cette erreur. Changer le trait de soulignement en trait d'union a résolu mon problème.

11
Chris.B

Dans AWS, accédez à votre vpc et activez les "noms d'hôte DNS".

11
Erick

J'ai rencontré ce même message d'erreur. Je pense que ce fil de discussion sur AWS Developer Forums est une meilleure solution:

"Accédez à la console de gestion VPC, sélectionnez le VPC, cliquez sur Actions, sélectionnez Modifier les noms d'hôte DNS, puis sélectionnez Oui."

https://forums.aws.Amazon.com/thread.jspa?messageID=699718

5
user93581

Certains émulateurs de terminaux ne mettent pas à jour l'invite avec le nom d'hôte correct jusqu'à ce que vous fermiez et redémarriez l'émulateur (lxterminal, je vous parle).

J'ai passé 30 minutes à lutter contre cette erreur après avoir édité mes fichiers hostname et hosts et exécuter Sudo service hostname restart jusqu'à l'exécution de Sudo hostname et constater que le nom d'hôte était la nouvelle valeur, même si l'invite était montrant l'ancienne valeur.

5
dagbel

Dans mon cas, c’était le problème, j’ai changé le hostname en man parce que je voulais savoir s’il existe certains paramètres que vous pouvez utiliser sur hostname. Au lieu de cela, mon hostname a été remplacé par man et j'ai toujours reçu le même message que vous.

Sudo: unable to resolve Host (none)

après avoir changé le nom d'hôte à `localhost tout a bien fonctionné à nouveau

hostname localhost
4
XandruCea

Le symptôme donné dans la question peut fortement corréler avec ce problème plus spécifique:

$ hostname --fqdn
hostname: Temporary failure in name resolution

Cela peut être résolu de différentes manières, l'une d'entre elles consiste à ajouter votre nom d'hôte en tant qu'hôte local dans /etc/hosts (comme indiqué dans plusieurs autres réponses). C'est peut-être la bonne chose à faire en général, mais ce n'est pas la seule solution possible.

Un "nom de domaine complet" peut être fourni par un serveur DNS externe ou similaire (s'il est disponible sur votre réseau). Dans ce cas, Sudo ne se plaindra pas, malgré l’entrée manquante dans /etc/hosts.


Remarque: Sudo tente de déréférencer le nom d'hôte, même si cela n'est pas nécessairement requis, en raison des fonctionnalités facultatives du fichier sudoers. Voir commande Sudo essayant de rechercher un nom d’hôte .

Tant que le délai n'est pas trop long, ce message d'erreur est généralement inoffensif.

4
nobar

Tout le monde conseille de modifier /etc/hosts. Mais dans certains cas, cela peut ne pas être possible (par exemple, dans un conteneur de menu fixe). Donc, je devais trouver un meilleur moyen et je suis venu avec ceci:

echo "alias Sudo='Sudo -h 127.0.0.1'" >> ~/.bash_aliases
source ~/.bashrc

Les alias ne fonctionnent pas dans les scripts bash, mais nous pouvons utiliser des variables: Sudo='Sudo -h 127.0.0.1'

3
dashohoxha

Désolé, je ne peux pas vous aider beaucoup mais, puisqu'il est écrit "ne peut pas résoudre l'hôte", essayez de lancer:

hostname

Et voir si la sortie est le nom d'hôte de la machine. Sinon, le problème vient de la configuration de l'hôte, pas de Sudo.

2
animaletdesequia

OP a écrit:

Tout était dans/etc/hostname. Sur deux de nos serveurs malades, cela ressemblait à ceci:

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

Alors que sur un serveur sans ce problème, nous avions:

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

Suppression de la portion linux-web-n, redémarrage et tout va bien.

2
Radu Rădeanu

J'ai eu le même problème! J'ai changé le nom de mon VPS via le panneau de configuration de l'administrateur en ligne, ce qui n'a pas changé le nom de la machine dans le fichier hosts. Tout ce que j'ai fait est exécuté:

Sudo nano /etc/hosts

Puis je l'ai édité à partir de ceci:

127.0.1.1 Megabyte Megabyte
127.0.0.1 localhost

Pour ça:

127.0.1.1 Debian Debian
127.0.0.1 localhost

et cela a corrigé mon erreur! J'espère que cela a aidé!

2
Synth

vous risquez de recevoir une erreur si votre hôte ou votre fichier de nom d’hôte contient des caractères non autorisés. Seuls ces symboles sont autorisés: a-z, A-Z, 0-9

2
Marcello

Si vous utilisez Vagrant, connectez-vous à l'invité et exécutez apt-get --no-install-recommends install virtualbox-guest-utils

1
tanmoy

J'ai eu le même problème. Je l'ai résolu en modifiant les fichiers/etc/hosts et/etc/hostname ... du fichier/etc/hosts, il suffit d'éditer la partie supérieure, comme indiqué ci-dessous.

#vi /etc/hosts
    127.0.0.1   localhost
    127.0.1.1   localhost  myhostname




#vi /etc/hostname
    myhostname
1
Centy

si vous ne pouvez pas utiliser Sudo, vous POUVEZ vous connecter en tant que root via su. IE: su root (dans un x-term). puis donnez le mot de passe root lorsque vous y êtes invité, vous pourrez ensuite éditer les fichiers avec nano. Le mot de passe root dans 'buntu est identique à celui que vous utiliseriez pour Sudo.

1
ken scharf

Si votre problème est que le fichier /etc/hostname et le /etc/hosts, les deux fichiers ont le nom d’hôte désiré et que votre ordinateur affiche toujours l’erreur

Sudo: unable to resolve Host

Essayez, forçant le nom d'hôte

Sudo hostname -F /etc/hostname

Vous obtiendrez probablement toujours la même erreur, mais essayez de vous déconnecter et de vous reconnecter. Cela a fonctionné pour moi.

0
GypsyCosmonaut