本記事の構成および論理分析にはAI(人工知能)を使用しています。情報の正確性は、システム管理者(UNIXユーザー)による手動検証済みです。
SSH初心者の壁を乗り越えろ!Raspberry Piに接続できない時の確認手順|UNIX Cafe

ラズパイユーザーが通る道? SSH「接続できない」沼からの脱出劇
ミナちゃんユニ先生、大変です!Raspberry PiにSSHで接続しようとしたら、エラーが出て先に進めません…。
この悲鳴、どこかで聞いたことがあるような気がしませんか?
Raspberry Piを使い始めると、多くの人が一度はぶつかるのが、SSH接続の壁です。
ターミナルから接続しようとしたら、Operation timed out と表示される。あるいは、Permission denied と表示されて、先に進めない。
このようなエラーを見ると、初心者のうちは「何か大きな失敗をしたのでは」と不安になります。
でも、SSHのエラーメッセージは、ただの失敗通知ではありません。どこで止まっているのかを教えてくれる、原因探しの道しるべです。
この記事では、MacからRaspberry PiへSSH接続する場面を例に、接続できない時の確認手順を、準備から順番に整理していきます。
Raspberry Pi公式ドキュメントでも、同じネットワーク上にある別のコンピュータからSSHでRaspberry Piのターミナルへアクセスできると説明されています。ただし、そのためにはRaspberry Pi側でSSHサーバーを有効にしておく必要があります。
参考:Raspberry Pi Documentation – Remote access
今回の前提環境
この記事では、次のような環境を想定します。
接続元:Mac
接続先:Raspberry Pi
Raspberry Pi OS:Lite または Desktop
接続方法:同じ家庭内LANからSSH接続
操作方法:Macのターミナルから ssh コマンドを使う大切なのは、MacとRaspberry Piが同じ家庭内ネットワークにいることです。
たとえば、Macが自宅のWi-Fiにつながっていて、Raspberry Piも同じWi-Fiにつながっている。または、Macは有線LAN、Raspberry PiはWi-Fiでも、同じルーターの内側にいる。このような状態であれば、SSH接続できる可能性があります。
反対に、MacとRaspberry Piが別々のネットワークにいる場合は、この記事の手順だけでは接続できませんので、まず同じネットワークに接続していることを確認してください。
作業前に準備するもの
SSH接続を試す前に、次のものを確認しておきます。
- 起動済みのRaspberry Pi
- Raspberry Piのユーザー名
- Raspberry Piのパスワード
- Raspberry PiのIPアドレス
- Macのターミナル
- 同じネットワーク環境
ここで特に大切なのは、ユーザー名です。
古い記事や解説では、Raspberry Piのユーザー名として pi がよく出てきます。しかし現在は、Raspberry Pi ImagerなどでOSを書き込む時に、自分でユーザー名やパスワードを設定する流れが一般的です。
Raspberry Pi公式ドキュメントでも、Raspberry Pi Imagerでホスト名、ユーザーアカウント、ネットワーク設定、SSHアクセスなどを事前設定できると説明されています。
参考:Raspberry Pi Documentation – Getting started
そのため、何も考えずに次のように入力しても、接続できないことがあります。
ssh pi@192.168.1.23自分で設定したユーザー名を使うこと。これが、SSH接続で最初に確認したいポイントです。
まずRaspberry Pi側でSSHを有効にする
SSH接続をするには、Raspberry Pi側でSSHが有効になっている必要があります。
Raspberry Piにモニターとキーボードをつないで操作できる場合は、次のコマンドを実行します。
sudo raspi-config設定画面が開いたら、次の順番で進みます。
Interface Options
→ SSH
→ Enableこれで、Raspberry PiがSSH接続を受け付ける状態になります。
もしRaspberry Pi ImagerでOSを書き込む段階なら、あらかじめSSHを有効にしておくこともできます。モニターなしでRaspberry Piを使う場合は、OSを書き込む時点でSSH、ユーザー名、パスワード、Wi-Fi設定を済ませておくと安心です。
接続に使うユーザー名を確認する
Raspberry Piに直接ログインできる場合は、ユーザー名を確認しておきましょう。
Raspberry Piのターミナルで、次のコマンドを入力します。
whoamiたとえば、次のように表示されたとします。
minaこの場合、SSH接続で使うユーザー名は mina です。
つまり、Macから接続する時は、次のような形になります。
ssh mina@192.168.1.23pi ではなく、自分の環境で表示されたユーザー名を使います。
Raspberry PiのIPアドレスを確認する
次に、Raspberry PiのIPアドレスを確認します。
Raspberry Pi側で、次のコマンドを入力します。
hostname -Iすると、次のような数字が表示されます。
192.168.1.23この数字が、Raspberry PiのIPアドレスです。
MacからRaspberry PiへSSH接続する時は、このIPアドレスを使います。
ssh ユーザー名@IPアドレスたとえば、ユーザー名が mina、IPアドレスが 192.168.1.23 なら、次のようになります。
ssh mina@192.168.1.23この形が、SSH接続の基本です。
Macから通信できるか確認する
いきなりSSH接続を試す前に、MacからRaspberry Piが見えているか確認します。
Macのターミナルで、次のように入力します。
ping 192.168.1.23IPアドレスの部分は、自分のRaspberry Piで確認したものに置き換えてください。
応答が返ってくる場合は、MacからRaspberry Piまでのネットワーク経路は通っています。
64 bytes from 192.168.1.23: icmp_seq=0 ttl=64 time=5.123 ms
64 bytes from 192.168.1.23: icmp_seq=1 ttl=64 time=4.876 ms止める時は、control キーを押しながら c を押します。
ここで応答が返ってくるなら、次はSSHの認証を確認する段階です。
反対に、応答が返ってこない場合は、SSH以前の問題です。IPアドレス、Wi-Fi、有線LAN、ルーターの設定などを確認します。
最初の壁:Operation timed out
SSH接続を試した時に、次のようなエラーが出ることがあります。
Operation timed outまた、pingでも次のように表示されることがあります。
ping: sendto: Host is down (100% packet loss)これは、SSHのユーザー名やパスワード以前に、MacからRaspberry Piへ通信できていない状態です。
つまり、まだログインの段階まで進んでいません。
この場合は、次の点を確認します。
- Raspberry Piの電源は入っているか
- Raspberry PiはWi-FiまたはLANに接続されているか
- MacとRaspberry Piは同じネットワークにいるか
- IPアドレスは正しいか
- Raspberry PiのIPアドレスが変わっていないか
- ルーターの設定で機器同士の通信が遮断されていないか
特に、IPアドレスは変わることがあります。
以前は 192.168.1.23 だったのに、再起動後に 192.168.1.31 になっていることもあります。
そのため、接続できない時は、Raspberry Pi側で改めて確認します。
hostname -Iまた、ルーターによっては、同じWi-Fiにいる機器同士の通信を制限する機能があります。「APアイソレーション」「プライバシーセパレーター」などの名前で呼ばれることがあります。
この機能が有効になっていると、MacとRaspberry Piが同じWi-Fiにいても、互いに通信できない場合があります。
Operation timed out が出る時は、まずSSHの設定を疑うのではなく、ネットワークとして相手に届いているかを確認するのが大切です。
次の壁:Permission denied
SSH接続を試した時に、次のような表示が出ることがあります。
Connection closed by 192.168.1.23 port 22
Permission denied, please try again.この表示が出る場合、少なくともRaspberry PiのSSH接続口である22番ポートまでは届いています。つまり、先ほどの Operation timed out とは違い、ネットワークとして完全に届いていない状態ではありません。
ただし、ログインのための認証で失敗している可能性があります。まずは、ユーザー名とパスワードを確認します。
確認するポイントは、次の通りです。
- ユーザー名は正しいか
- パスワードは正しいか
- 古い情報を見て
piユーザーで接続していないか - キーボード配列の違いで記号を間違えていないか
- 接続先のユーザーが本当に存在するか
たとえば、Raspberry Piのユーザー名が mina なのに、次のように入力していると接続できません。
ssh pi@192.168.1.23この場合は、正しいユーザー名に直します。
ssh mina@192.168.1.23Permission denied は、単なるパスワードミスだけとは限りません。ユーザー名が違うだけでも表示されます。
特に、現在のRaspberry Pi OSでは、OS作成時に自分でユーザー名を設定することが多いため、pi で接続できるとは限りません。
初回接続時の確認メッセージ
初めてRaspberry PiへSSH接続する時、次のようなメッセージが表示されることがあります。
The authenticity of host '192.168.1.23' can't be established.
Are you sure you want to continue connecting (yes/no/[fingerprint])?これは、初めて接続する相手なので、本当に接続してよいか確認しているメッセージです。
自宅のRaspberry Piに接続していることがわかっている場合は、次のように入力します。
yesその後、パスワードを入力します。
一度接続すると、Mac側に接続先の情報が記録されるため、通常は毎回この確認が出るわけではありません。
ホスト名で接続する
IPアドレスで接続できるようになったら、次はホスト名での接続を試すことができます。
Raspberry Piのホスト名が raspberrypi の場合、次のように接続できることがあります。
ssh mina@raspberrypi.local.local を使った接続は、mDNSという仕組みを使います。
ただし、raspberrypi.local は、環境によってうまく使えないことがあります。
そのため、初心者のうちは次の順番がおすすめです。
- まずIPアドレスで接続できることを確認する
- その後、ホスト名で接続できるか試す
IPアドレスでは接続できるのに、raspberrypi.local では接続できない場合は、SSHそのものではなく、名前解決の問題です。
その場合は、いったんIPアドレスで接続すれば大丈夫です。
接続できた後の改善:SSHをもっと使いやすくする
~/.ssh/config で接続を短くする
毎回、次のように長いコマンドを入力するのは少し面倒です。
ssh mina@192.168.1.23そこで、Mac側のSSH設定ファイルを使います。
まず、.ssh ディレクトリを作成します。
mkdir -p ~/.ssh権限も整えておきます。
chmod 700 ~/.ssh次に、設定ファイルを開きます。
vi ~/.ssh/config次のように書きます。
Host raspi
HostName 192.168.1.23
User minaHostName には、Raspberry PiのIPアドレスを書きます。User には、自分のRaspberry Piのユーザー名を書きます。
保存したら、設定ファイルの権限も整えます。
chmod 600 ~/.ssh/configこれで、次回からは短いコマンドで接続できます。
ssh raspiIPアドレスではなくホスト名で接続できる環境なら、次のように書くこともできます。
Host raspi
HostName raspberrypi.local
User minaただし、raspberrypi.local が不安定な場合は、まずIPアドレスで設定する方がわかりやすいです。
接続後にロケール警告が出る場合
SSH接続には成功したけれど、ログイン後に次のような警告が出ることがあります。
setlocale: LC_ALL: cannot change locale (ja_JP.UTF-8)これは、Mac側の日本語環境と、Raspberry Pi側のロケール設定が合っていない時に出ることがあります。
Raspberry Piを英語環境のまま使いたい場合でも、日本語ロケールだけを追加しておくと、この警告が出なくなる場合があります。
Raspberry Pi側で、次のコマンドを実行します。
sudo raspi-config設定画面が開いたら、次のように進みます。
Localisation Options
→ Locale言語リストが表示されたら、次の項目を探します。
ja_JP.UTF-8 UTF-8スペースキーでチェックを入れ、Enterで進みます。
次に、システムのデフォルトロケールを聞かれます。Raspberry Piの基本表示を英語のままにしたい場合は、元の設定に近いものを選びます。
たとえば、C.UTF-8 または en_GB.UTF-8 を選びます。
これで、多くの場合、ロケールの警告は表示されなくなります。
SSHを使う時の安全上の注意
SSHはとても便利です。MacからRaspberry Piに入り、手元のターミナルだけで操作できます。
ただし、SSHは外からログインできる入口でもあります。
家庭内LANだけで使う場合でも、次の点には注意しておきましょう。
- 弱いパスワードを使わない
- 不要な時はSSHを無効にする選択肢もある
- インターネット側に不用意にSSHを公開しない
- 慣れてきたらSSH鍵認証も検討する
Raspberry Pi公式ドキュメントでも、SSHではパスワード認証のほか、より安全な方法として鍵認証が案内されています。
参考:Raspberry Pi Documentation – Configuration
家庭内LANで試す段階なら、まずはパスワード認証から始めてもかまいません。ただし、長く使う場合や安全性を高めたい場合は、あとでSSH鍵認証へ進むと安心です。
まとめ:SSHエラーは順番に切り分ける
SSH接続で大切なのは、エラーを一度に解決しようとしないことです。
まず、どこで止まっているのかを分けて考えます。
- Operation timed out:ネットワークとして届いていない
- Permission denied:Raspberry Piには届いているが、認証に失敗している
- setlocale warning:SSH接続後の言語設定の警告
このように分けると、エラーは怖いものではなくなります。
最初に確認するのは、IPアドレスです。
hostname -I次に、Macから通信できるか確認します。
ping 192.168.1.23通信できたら、SSHで接続します。
ssh ユーザー名@IPアドレス接続できるようになったら、~/.ssh/config を使って、短い名前で接続できるようにします。
ssh raspiSSHは、Raspberry PiをCLI環境で使うための大切な入口です。
最初は少し難しく感じるかもしれません。でも、エラーをひとつずつ読み解いていけば、必ず原因に近づけます。
エラーは、あなたを止める壁ではありません。次に確認する場所を教えてくれる、小さな案内板です。











