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

Quand je cours sudo le terminal est bloqué pendant quelques secondes puis affiche un message d'erreur. Mon terminal ressemble à ceci:

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

Que puis-je faire pour le résoudre?

Deux choses à vérifier (en supposant que votre machine est appelée my-machine, vous pouvez modifier cela le cas échéant):

  1. Que le /etc/hostname le fichier contient uniquement le nom de la machine.

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

     127.0.0.1 hôte local.localdomain localhost 127.0.1.1 ma machine

Si l'un de ces fichiers n'est pas correct (puisque vous ne pouvez pas sudo), vous devrez peut-être redémarrer la machine en mode de récupération et apporter les modifications, puis redémarrer dans votre environnement habituel.

Modifier /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 cela).

Le mien ressemble à:

127.0.0.1       localhost localhost.localdomain penguin# The following lines are desirable for IPv6 capable hosts::1     ip6-localhost ip6-loopbackfe00::0 ip6-localnetff00::0 ip6-mcastprefixff02::1 ip6-allnodesff02::2 ip6-allrouters

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

Ajoutez votre nom d'hôte à /etc/hosts comme ça:

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

Remarque, ceci est une réponse à cette question qui a été fusionné avec celui-ci.

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

127.0.1.1   dave00-G31M-ES2

Ainsi il 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

Ajouter la lettre L comme mentionné, enregistrez et quittez.

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

exécutez cette commande:

sudo nano /etc/hosts

et puis ajoutez:

127.0.0.1   localhost.localdomain localhost127.0.1.1   ubuntu

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

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

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

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'obtenais cette erreur. Changer le trait de soulignement en trait d'union a résolu mon problème.

Dans AWS, accédez à votre VPC et activez "Noms d'hôte DNS".

Le symptôme donné dans la question peut être fortement corrélé à ce problème plus spécifique:

$ hostname --fqdnhostname: Temporary failure in name resolution

Il existe différentes façons de résoudre ce problème, dont l'une 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 ré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.


Note: sudo tente de déréférencer le nom d'hôte, même s'il n'est pas nécessairement requis, en raison des capacités facultatives du fichier sudoers. Voir commande sudo essayant de rechercher le nom d'hôte.

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

Tout le monde conseille de modifier /etc/hosts. Mais dans certains cas, cela peut ne pas être possible (par exemple à l'intérieur d'un conteneur docker). Donc, je devais trouver un meilleur moyen et j'ai trouvé ça:

echo "alias sudo='sudo -h 127.0.0.1'" >> ~/.bash_aliasessource ~/.bashrc

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

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

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

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

Je déconseille de fermer cette question comme trop localisée. Il y a beaucoup d’utilisateurs qui peuvent penser à tort qu’ils ont mis un nom dans leur fichier hosts mais mis un nom différent à la place, d’autant plus que sur de nombreux réseaux, les ordinateurs portent le même nom. Cette question (et cette réponse) apparaîtraient lorsque quelqu’un chercherait avec ce problème, et la réponse l’inciterait à vérifier de telles divergences, même si la faute d’orthographe exacte serait différente.

assurez-vous que votre “nom d’hôte” est identique à “hôtes”. par exemple, le nom d’hôte est * * ubuntu-pc** et les hôtes sont **ubuntu-pc * * doivent être identiques.

Veuillez publier le contenu de '/etc / hostname ‘et ` / etc / hosts’.

Je ne peux pas poster de réponse car cette question est protégée et je n’ai pas assez de réputation ici. Dans mon cas, j’ai résolu le problème en redémarrant network-manager: sudo /etc/init.d / redémarrage du gestionnaire de réseau. Cependant, je me demande pourquoi, en premier lieu, “sudo” perd du temps à attendre des choses liées au réseau. “sudo” ne devrait-il pas fonctionner sans problème lorsque le réseau n’est pas disponible?

J’ai rencontré ça aujourd’hui. Le problème était que ce que j’avais dans le nom d’hôte n’était pas dans /etc / hosts. À savoir : host hostname = > ‘mybox’ $ grep ‘mybox’ /etc / hosts => 192.168.1.2 mybox.example.com. J’avais besoin d’ajouter ‘mybox’ après mon nom de domaine dans /etc / hosts => 192.168.1.2 mybox.example.com ma boîte

Why does the question have <USER>"à la fin? Cela contredit la sortie réelle indiquée dans le corps de la question comme "(aucune) " Suggestion d'amélioration: supprimer

@arielf Vous pouvez améliorer les questions ici. Il a été modifié par un autre utilisateur. Je ne sais pas non plus. :stuck_out_tongue: