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?
Deux choses à vérifier (en supposant que votre machine s'appelle my-machine
, vous pouvez la changer si nécessaire):
Le fichier /etc/hostname
ne contient que le nom de la machine.
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.
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
.
Ajoutez votre nom d’hôte à /etc/hosts
comme ceci:
echo $(hostname -I | cut -d\ -f1) $(hostname) | Sudo tee -a /etc/hosts
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.
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!
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.
Dans AWS, accédez à votre vpc et activez les "noms d'hôte DNS".
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."
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.
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
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.
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'
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.
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.
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é!
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
Si vous utilisez Vagrant, connectez-vous à l'invité et exécutez apt-get --no-install-recommends install virtualbox-guest-utils
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
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.
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.