Mensagem de erro " sudo: não é possível resolver o host (nenhum)"

Quando Eu corro sudo o terminal fica preso por alguns segundos e, em seguida, emite uma mensagem de erro. Meu terminal se parece com isso:

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

O que posso fazer para resolvê-lo?

Duas coisas para verificar (supondo que sua máquina seja chamada my-machine, você pode alterar isso conforme apropriado):

  1. Que o /etc/hostname arquivo contém apenas o nome da máquina.

  2. Que /etc/hosts tem uma entrada para localhost. Deve ter algo como:

     127.0.0.1 localhost.localdomain localhost 127.0.1.1 minha máquina

Se qualquer um desses arquivos não estiver correto (já que você não pode sudo), você pode ter que reiniciar a máquina no modo de recuperação e fazer as modificações e, em seguida, reiniciar para o seu ambiente habitual.

Editar /etc/hosts e anexe seu novo nome de Host à linha 127.0.0.1(ou crie uma nova linha, se preferir).

O meu parece:

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

Substituir penguin no exemplo acima pelo seu novo nome de host, conforme indicado no /etc/hostname arquivo.

Adicione seu nome de host a /etc/hosts comer:

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

Note, esta é uma resposta para pergunta que foi fundido com este.

Seu nome de host (dave00-G31M-ES2L) não está representado em /etc/hosts. Adicionar um L para esta linha:

127.0.1.1   dave00-G31M-ES2

Então se torna:

127.0.1.1   dave00-G31M-ES2L

Para fazer isso, abra um console (pressione Ctrl+Alt+T) e tipo:

sudo gedit /etc/hosts

Adicione a letra L como mencionado, salve e saia.

Eu tive esse problema quando estava usando o ubuntu em um VPS. Resolvi editar o arquivo/etc / hosts.

execute este comando:

sudo nano /etc/hosts

e, em seguida, adicione:

127.0.0.1   localhost.localdomain localhost127.0.1.1   ubuntu

Espero que isso resolva seu problema :)

PS: lembre-se de reiniciar o computador!

Eu estava tendo o mesmo problema, embora o nome do host no meu arquivo /etc/hostname e o arquivo /etc/hosts correspondessem.

Meu nome de host era "staging_1". Acontece que você não pode ter um sublinhado em seu nome de host, e é por isso que eu estava recebendo esse erro. Alterar o sublinhado para um hífen corrigiu meu problema.

Na AWS, acesse sua vpc e ative "nomes de host DNS".

O sintoma dado na questão pode se correlacionar fortemente com esse problema mais específico:

$ hostname --fqdnhostname: Temporary failure in name resolution

Existem diferentes maneiras de resolver isso, uma das quais é adicionar seu nome de host como localhost em /etc/hosts (como mostrado em várias outras respostas). Esta pode ser a coisa certa a fazer em geral, mas não é a única resolução possível.

Um "nome de domínio totalmente qualificado" pode ser fornecido por um servidor DNS externo ou similar (se tal estiver disponível em sua rede). Neste caso, sudo não vai reclamar, apesar da falta de entrada em /etc/hosts.


Notar: sudo tenta desreferir o nome do host, mesmo que não seja necessariamente necessário, devido a recursos opcionais no arquivo sudoers. Ver comando sudo tentando pesquisar o nome do host.

Contanto que o atraso não seja muito longo, essa mensagem de erro geralmente é inofensiva.

Todo mundo aconselha a modificar /etc/hosts. Mas, em alguns casos, isso pode não ser possível (por exemplo, dentro de um contêiner docker). Então, eu tive que encontrar uma maneira melhor e eu vim com isso:

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

Aliases não funcionam em scripts bash, mas podemos usar variáveis: sudo='sudo -h 127.0.0.1'

Encontrei esta mesma mensagem de erro. Acho que esse tópico de discussão no AWS Developer Forums é uma solução melhor:

"Vá para o console de gerenciamento de VPC, selecione o VPC, clique em Ações, selecione Editar nomes de host DNS e selecione Sim."

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

Eu recomendo contra fechar esta pergunta como * muito localizado*. Existem muitos usuários que podem pensar erroneamente que colocaram um nome em seu arquivo ‘hosts’, mas colocaram um nome diferente, especialmente porque em muitas redes, os computadores têm nomes semelhantes. Essa pergunta (e resposta) apareceria quando alguém pesquisasse com esse problema, e a resposta os levaria a verificar tais discrepâncias, mesmo que o erro exato fosse diferente.

certifique-se de que seu nome do host seja igual a hosts. por exemplo, o nome do Host é ubuntu-pc e hosts é ubuntu-pc deve ser o mesmo.

Por favor, publique o conteúdo de '/etc / hostname ‘e`/etc/hosts’.

Não posso postar uma resposta porque esta pergunta está protegida e não tenho reputação suficiente aqui. No meu caso, resolvi o problema reiniciando o Gerenciador de rede ' sudo / etc / init.d / reinício do Gerenciador de rede. No entanto, estou me perguntando Por que, em primeiro lugar, ‘sudo’ perde tempo esperando por coisas relacionadas à rede. O sudo não deve funcionar sem problemas quando a rede não está disponível?

Encontrei isto hoje. O problema era que o que eu tinha no nome do host não estava em/etc / hosts. Para saber: $ hostname = > ‘mybox’ $ grep ‘mybox’ / etc / hosts = > 192.168.1.2 mybox.example.com. eu precisava adicionar ‘mybox’ após meu nome de domínio em/etc / hosts = > 192.168.1.2 mybox.example.com mybox

Why does the question have <USER>"no final? Isso contradiz a saída real mostrada no corpo da pergunta Como (nenhum) ’ sugestão de melhoria: remover `

@arielf você pode melhorar as perguntas aqui. Foi alterado por outro usuário. Também não sei. :stuck_out_tongue: