web-dev-qa-db-ja.com

エラーメッセージ「Sudo:ホストを解決できません(なし)」

Sudoを実行すると、端末が数秒間動かなくなり、エラーメッセージが出力されます。私の端末は次のようになります。

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

それを解決するために何ができますか?

731
Kit Sunde

確認する2つのこと(マシンがmy-machineと呼ばれる場合、これを適宜変更できます):

  1. /etc/hostnameファイルにマシンの名前のみが含まれていること。

  2. /etc/hostsにはlocalhostのエントリがあります。次のようなものが必要です。

     127.0.0.1 localhost.localdomain localhost 
     127.0.1.1 my-machine 
    

これらのファイルのいずれかが正しくない場合(Sudoを実行できないため)、マシンを再起動して復旧モードにし、変更を加えてから、通常の環境で再起動する必要があります。

990
Jeremy Kerr

編集/etc/hostsを実行し、新しいホスト名を127.0.0.1行に追加します(または、必要に応じて新しい行を作成します)。

私のように見えます:

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

/etc/hostnameファイルに記載されているように、上記の例のpenguinを新しいホスト名に置き換えます。

193
Lekensteyn

次のようにホスト名を/etc/hostsに追加します。

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

、これは この質問 に対する答えであり、これと統合されています。

ホスト名(dave00-G31M-ES2L)は/etc/hostsで表されません。 Lを次の行に追加します。

127.0.1.1   dave00-G31M-ES2

したがって、次のようになります。

127.0.1.1   dave00-G31M-ES2L

これを実現するには、コンソールを開きます(押します Ctrl+Alt+T)およびタイプ:

Sudo gedit /etc/hosts

前述のように文字Lを追加し、保存して終了します。

31
Thor

VPSでUbuntuを使用していたときにこの問題が発生しました。/etc/hostsファイルを編集して解決しました。

次のコマンドを実行します:

Sudo nano /etc/hosts

次に追加します:

127.0.0.1   localhost.localdomain localhost
127.0.1.1   ubuntu

それがあなたの問題を解決することを願っています:)

PS:コンピューターを再起動することを忘れないでください!

16
Luca D'Amico

/ etc/hostnameファイルと/ etc/hostsファイルのホスト名が一致しても、同じ問題が発生していました。

私のホスト名は「staging_1」でした。ホスト名にアンダースコアを使用できないことが判明したため、このエラーが発生していました。アンダースコアをハイフンに変更すると、問題が解決しました。

11
Chris.B

AWSで、vpcに移動して「DNSホスト名」をオンにします。

11
Erick

これと同じエラーメッセージが表示されました。 AWS開発者フォーラムのこのディスカッションスレッドは、より良いソリューションだと思います。

"VPC管理コンソールに移動し、VPCを選択し、[アクション]をクリックし、[DNSホスト名の編集]を選択して、[はい]を選択します。"

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

5
user93581

質問で示される症状は、このより具体的な問題と強く相関している可能性があります。

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

これを解決する方法はいくつかありますが、そのうちの1つは/etc/hostsにホスト名をlocalhostとして追加することです(他のいくつかの回答に示されているように)。これは一般的に正しいことかもしれませんが、唯一可能な解決策ではありません。

「完全修飾ドメイン名」は、外部DNSサーバーなどによって提供される場合があります(ネットワーク上で利用可能な場合)。この場合、/etc/hostsにエントリがなくても、Sudoは文句を言いません。


注:Sudoは、必ずしも必須ではありませんが、sudoersファイルのオプション機能により、ホスト名の間接参照を試みます。 ホスト名を検索しようとするsudoコマンド を参照してください。

遅延が長すぎない限り、このエラーメッセージは通常無害です。

5
nobar

一部のターミナルエミュレータは、エミュレータを閉じて再起動するまで、プロンプトを正しいホスト名で更新しません(lxterminal、私はあなたに話している)。

hostnameおよびhostsファイルを編集し、Sudo service hostname restartを実行してからSudo hostnameを実行し、ホスト名がプロンプトに古い値が表示されていた場合でも、新しい値。

5
dagbel

私の場合、それは問題でした。hostnameで使用できるパラメータがあるかどうかを知りたいので、manhostnameに変更しました。代わりに、それは私のhostnamemanに変更し、いつもあなたと同じメッセージを受け取りました

Sudo: unable to resolve Host (none)

ホスト名を「localhost」に戻した後、すべてが再び正常に機能しました

hostname localhost
4
XandruCea

誰でも/etc/hostsを変更することをお勧めします。ただし、場合によってはこれが不可能な場合があります(たとえば、Dockerコンテナー内)。だから、私はより良い方法を見つけなければならなかったし、これを思いついた:

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

エイリアスはbashスクリプトでは機能しませんが、変数を使用できます:Sudo='Sudo -h 127.0.0.1'

3
dashohoxha

申し訳ありませんが、「ホストを解決できません」と表示されているので、実行してみてください:

hostname

そして、出力がマシンのホスト名かどうかを確認します。そうでない場合、問題はホスト構成であり、Sudoではありません。

2

OPが書いた:

すべて/ etc/hostnameにありました。病気のサーバーの2つでは、次のようになりました。

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

この問題のないサーバーでは、次のことができました。

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

linux-web-n部分を削除して再起動しましたが、すべて正常でした。

2
Radu Rădeanu

これと同じ問題がありました!オンライン管理コントロールパネルでVPSの名前を変更しましたが、hostsファイルのマシン名は変更しませんでした。

Sudo nano /etc/hosts

次に、これから編集しました:

127.0.1.1 Megabyte Megabyte
127.0.0.1 localhost

これに:

127.0.1.1 Debian Debian
127.0.0.1 localhost

そしてそれは私のエラーを修正しました!これが役に立てば幸いです!

2
Synth

ホストまたはホスト名ファイルに不正な文字が含まれていると、エラーが発生する可能性があります。次の記号のみが許可されます:a-z、A-Z、0-9

2
Marcello

Vagrantを使用している場合は、ゲストにログインしてapt-get --no-install-recommends install virtualbox-guest-utilsを実行します

1
tanmoy

同じ問題がありました。/etc/hostsファイルの/ etc/hostsファイルと/ etc/hostnameファイルを編集して解決しました。以下に示すように上部を編集するだけです。

#vi /etc/hosts
    127.0.0.1   localhost
    127.0.1.1   localhost  myhostname




#vi /etc/hostname
    myhostname
1
Centy

sudoを実行できない場合は、suを介してrootとしてログインできます。 IE:su root(x-termで)。プロンプトが表示されたらrootパスワードを入力し、nanoでファイルを編集できます。 'buntuのルートパスワードは、Sudoに使用するパスワードと同じです。

1
ken scharf

問題が/etc/hostnameファイルと/etc/hostsの場合、両方のファイルに目的のホスト名があり、マシンにエラーが表示されている

Sudo: unable to resolve Host

試し、ホスト名を強制します

Sudo hostname -F /etc/hostname

おそらく同じエラーが表示されますが、ログアウトしてからログインし直してください。

0
GypsyCosmonaut