ラズパイがSSHに繋がらないときに疑うこと
Raspberry pi 3 model Bを買ってSSH接続しようとしてハマったことを残しておきます。
OSにはRaspbianのデスクトップ付きを使いました。
https://www.raspberrypi.org/downloads/raspbian/
宅内のWifiに接続し、キーボード日本語化や時刻設定まで済ませました。
同一Wifiに接続しているWindows10端末からSSHしようとして、なぜか繋がらない現象が発生しました。
ググっていろいろ調べたことを共有します。
本当にWifiにつながっているか?
OSにWifiの設定をしたつもりが、実はつながっていないことは稀にあります。
まずはOS側でcurl -Iv https://www.google.com
みたいコマンドで、インターネット接続を確認します。
これがNGなら、ip a
やifconfig
でIPアドレスが取れているかを確認します。
標準で127.0.0.1や127.0.1.1が出て来るかもしれませんが、これらは無視です。
192.168.x.xみたいのがない場合は、Wifi接続にミスっているかもしれません。
(宅内WifiのほとんどはクラスCだと思いますが、もし敢えてクラスAやクラスBを指定している場合は、10.x.x.xや172.x.x.xになります)
Raspberry pi 3は標準でWifiが用意されていますが、Wifi countryを設定する必要があります。
これはJapanにしましょう。
http://ykubot.com/2017/01/17/raspberry-pi-3-initialize/
あとは、PCやタブレットをWifiにつなげたとき同様、SSIDやキーの入力ミス、Wifi接続数の上限を疑いましょう。
Raspbian OSは標準でSSHがオフ
Raspbian OSは2016年末以降、SSHが標準でオフになっています。
以下の手順で、これをオンにします。
https://qiita.com/Halhira/items/1da2ae543217be26988a
http://ykubot.com/2017/01/17/raspberry-pi-3-initialize/
SSH接続端末は同一ネットワークにいるか?
同一Wifiなら同一ネットワークにいるでしょうが(むしろ違うネットワークを設定する技術力があるなら、こんなことで困ることはないでしょう)、一応確認しておきましょう。
Raspberry piではip a
、WindowsではPowershellを起動し、ipconfig
でIPアドレスを確認します。
おそらく、192.168.10.1と192.168.10.2のような連続値が自動で設定されていると思います。
Raspberry piのユーザ名とパスワードは間違っていないか?
デフォルトでpi/raspberryが設定されていますが、"rapsberry"を打ち間違えていないか、確認しましょう。
SSH以外はつながるか?
とりあえずpingします。
Raspberry pi → Raspberry pi:OK
Windows → Windows:OK
Raspberry pi → Windows:NG
Windows → Raspberry pi:NG
なんと、Raspberry piとWindows間でPingが通りません。
同一ネットワーク上にあるはずなので、パケットをロスします。
Raspberry piにはufwは入れていません。基本的にポートは開放されているはずです。
ここまでくれば、だいぶ原因が絞り込めてきた気がします。
Wifiが端末間接続を拒否している?
実はWifiには端末間接続を拒否する機能があります。
プライバシーセパレータとかAPアイソレーションとか呼ばれるものですが、Wifiにつながっている端末どうしがお互いに接続しないよう、保護されています。
公衆Wifiや無線Wifiだと必ず有効化されていると思いますが、公衆Wifiにつなげたスマホに見知らぬ人からアクセスされないようにする機能です。
http://e-words.jp/w/%E3%83%97%E3%83%A9%E3%82%A4%E3%83%90%E3%82%B7%E3%83%BC%E3%82%BB%E3%83%91%E3%83%AC%E3%83%BC%E3%82%BF.html
宅内Wifiでも同様に、これが有効化されていると、端末どうし、WindowsとRaspberry piどうしで接続することはできません。
無効化(端末間接続の許可)の方法はWifi端末次第ですが、私の場合はこれが原因でRaspberry piにSSH接続できませんでした。
ちなみに、この設定でコケるのはRaspberry piに限りません。
最近Google Homeを買ったのですが、端末間接続を拒否されていると、初期設定ができずに積みます。
気をつけましょう。