SSHでサーバーに接続しようとした際に
ssh: Could not resolve hostname xxx: Name or service not known
というエラーが表示されることがあります。
これは「指定したホスト名が名前解決できない(IPアドレスに変換できない)」ことを意味します。
つまり、SSH自体の問題ではなく ホスト名の設定やDNS解決 に関する問題です。
本記事では、主な原因と確認・解決方法を整理します。
目次
主な原因
1. ホスト名のタイプミス
- 入力したホスト名が間違っている
- 全角文字や不要なスペースが混じっている
.com
や.local
などドメイン名の抜け
など、単純なタイプミスが意外と多いです。
2. /etc/hosts
に設定がない
プライベートネットワークやテスト環境では、ホスト名とIPアドレスの対応を /etc/hosts
で管理していることがあります。
そこにエントリがなければ解決できません。
3. DNS解決ができない
外部のDNSサーバーに問い合わせができない場合、名前解決に失敗します。
/etc/resolv.conf
が未設定- 使用しているDNSサーバーが応答しない
- 社内環境で専用DNSが必要なのに外部DNSを参照している
といったケースが考えられます。
解決方法
1. 入力内容を見直す
まずは単純な入力ミスをチェックします。
ssh user@hostname
の hostname
部分が正しいか、不要なスペースや全角文字がないか確認してください。
2. /etc/hosts
を確認・修正する
もし固定のホスト名を使っている場合は /etc/hosts
に設定が必要です。
内容を確認するには:
cat /etc/hosts
例:
192.168.1.10 myserver
このように書かれていれば ssh user@myserver
で接続できます。
設定がなければ編集します:
sudo vi /etc/hosts
あわせて読みたい


【コマンド詳細】sudoの使い方とオプションまとめ
sudoコマンドは、一般ユーザーが一時的に特権(root権限)を取得して、特定のコマンドを実行するためのツールです。システムの安全性を保ちながら特権操作を行うために…
3. DNS解決の確認
以下のコマンドでホスト名が解決できるか確認します。
dig hostname
または
nslookup hostname
解決できない場合は /etc/resolv.conf
を確認しましょう。
cat /etc/resolv.conf
例:
nameserver 8.8.8.8
Google Public DNS (8.8.8.8) や Cloudflare DNS (1.1.1.1) を設定するのも有効です。
あわせて読みたい


ネットワーク管理の基本コマンド解説 – ifconfig, ping, traceroute, nslookupを使いこなそう
inuxでのネットワーク設定と管理 – 基本コマンドの使い方 ネットワーク管理はLinuxにおいて非常に重要なスキルです。この記事では、ネットワークの設定と確認に使う代表…
まとめ
ssh: Could not resolve hostname
が出る場合は、以下を順に確認してください。
- ホスト名のスペルミスや入力ミスがないか
/etc/hosts
に必要なエントリがあるか- DNSが正しく設定され、問い合わせできているか
特に社内環境やクラウド環境では /etc/hosts
とDNSの両方を意識する必要があります。
よくあるエラーと解決方法まとめ
あわせて読みたい


【完全版】SSHエラー大全|接続できない原因と解決方法まとめ
SSH(Secure Shell)はLinuxサーバー管理に欠かせないリモート接続の手段ですが、実際の運用では「接続できない」「認証に失敗する」「タイムアウトする」など、さまざ…